OnData event is executed only for visible items so it has same behavior as concept of "virtual" list. So items data are loaded on demand direct from your list structure as TList, TObjectList, ...
VirtualTreeView should be slower because it can handle work with three whereas TListView is just list of item. To display virtual tree, component have to know about levels and count of items in expanded nodes so handling item list with treeview component should be slower when with list view component.