Yes, virtual mode could be used in the first scenario when your users paste copied data, but it is definitely not the choice for the second OLE drag-n-drop method of adding data from Excel. You really need to count the total number of data rows in the clipboard before adding data into iGrid and extend it dynamically if required.
The Excel clipboard data format is enough simple (if we talk about the text representation) - rows are separated with vbCrLf, cell values are separated with vbTab. You ordered iGrid and have the source code now, and you can see how we process such a clipboard string in the private pClipboardPasteFrom procedure in the iGrid main module.
As for the moment when you can calculate the number of rows to paste, for OLE drag-n-drop it's definitely OLEDragDrop. As for pasting from the clipboard, we have two methods. For the keyboard command CTRL+V it's the KeyDown event, and there should be no problems with that too. As for pasting using the mouse, it's the built-in context menu, and this is the hardest part of this puzzle as there is no related event you can use for your calculation. The only event raised during the process of pasting is RequestEdit; it is raised for every cell, but you can analyze whether it is raised for the current cell to do your calculations only once. If this approach won't work for some reasons, you can simply prohibit all built-in context menus using the BuiltinContextMenus property.