TListView の Items.Add は遅いので仮想リストビューを使えとあるんだけどどう使えばいいかわかりません。Demos のvirtuallistview.dpr は少し複雑すぎてよくわかりません
でした。
 OwnerData プロパティの説明に
> 仮想リストビューの項目は,OnData,OnDataFind,OnDataHint,および OnDataStateChange イベントハンドラを使って管理する必要があります。
とありますが、たとえば以下のような単純にデータを追加するだけのような場合どうしたらよいのでしょ?
procedure TForm1.Buttn1Click(Sender: TObject);
var
 Node: TTreeNode;
 Item: TListItem;
 n: Integer;
 S: String;
begin
 Node := TreeView1.Items.GetFirstNode;
 if Node <> Nil then
 repeat
  if Node.StateIndex = n then
  begin
   Item := ListView1.Items.Add;
   Item.Caption := Node.Text;
   Item.Data := Node;
   Item.ImageIndex := n;
   S := Format('%5d',[Node.AbsoluteIndex+1]);
   Item.SubItems.Add(S);
  end;
  Node := Node.GetNext;
 until Node = nil;
end;