Благодарен за ответ!
Поторопился. Я тут покопал и обнаружил, что средствами ObjectARX это теоретически возможно:
//-----------------------------------------------------------------------------
//----- acrxEntryPoint.cpp
//-----------------------------------------------------------------------------
#include "StdAfx.h"
#include "resource.h"
 
//-----------------------------------------------------------------------------
#define szRDS _RXST("")
 
//-----------------------------------------------------------------------------
//----- ObjectARX EntryPoint
class COLE2EditApp : public AcRxArxApp {
 
public:
  COLE2EditApp () : AcRxArxApp () {}
 
  virtual AcRx::AppRetCode On_kInitAppMsg (void *pkt) {
    AcRx::AppRetCode retCode = AcRxArxApp::On_kInitAppMsg (pkt) ;
    return (retCode) ;
  }
 
  virtual AcRx::AppRetCode On_kUnloadAppMsg (void *pkt) {
    AcRx::AppRetCode retCode =AcRxArxApp::On_kUnloadAppMsg (pkt) ;
    return (retCode) ;
  }
 
  virtual void RegisterServerComponents () {}
 
  static void OLEOLE2Edit () {
    ads_name en; ads_point p;
    if (acedEntSel(L"\nВыберите OLE-объект: ", en, p) == RTNORM) {
      AcDbObjectId eid; acdbGetObjectId(eid,en);
      AcDbObjectPointer<AcDbOle2Frame> pFrame(eid, AcDb::kForWrite);
      if (pFrame.openStatus() == Acad::eOk) {
        COleClientItem *pClient = pFrame->getOleClientItem();
        if (pClient)  {
          pClient->DoVerb(OLEIVERB_OPEN, NULL);
        }
      } else if (pFrame.openStatus() == Acad::eWrongObjectType) {
        acutPrintf(L"\nЭто не OLE-объект!");
      } else {
        acutPrintf(L"\nОшибка открытия объекта!");
      }
    }
 
  }
 
} ;
 
//-----------------------------------------------------------------------------
IMPLEMENT_ARX_ENTRYPOINT(COLE2EditApp)
 
ACED_ARXCOMMAND_ENTRY_AUTO(COLE2EditApp, OLE, OLE2Edit, OLE2Edit, ACRX_CMD_MODAL, NULL)
 
 
Т.е. вместо команды _OLEOPEN я написал команду _OLE2EDIT, которая вот так работает:
Возникает единственная проблема, что (так же как и в команде _OLEOPEN), _OLE2EDIT работает асинхронно, т.е. команда уже закончилась, а редактирование еще не началось. Поэтому видимо понадобится еще реактор на завершение редактирования и продолжать работу можно только после того, как этот реактор сработает. 
Сделать это средствами .NET через P/Invoke я думаю возможно, но очень кропотливо и будет зависеть от версии и разрядности AutoCAD и MFC.
Мне вот одно непонятно - зачем таким образом работать с dwg-файлами, открываемыми через ReadDwgFile в фоновом режиме, если всё-равно собираешься OLE-объекты редактировать в Excel вручную? Для меня это полная загадка.