Selber machen, ist nicht schwer. Hier habe ich etwas Code zu einem anderen Problem veröffentlicht und dabei mit TListView eine Art ShellListView entwickelt:
http://www.delphipraxis.net/1253238-post17.html (Titel ist irreführend)
Also, etwas anpassen und schon hast du deine eigene ShellListView. Das Ganze kann man noch kräftig verbessern, hier ging es eher um Geschwindigkeit als um Schönheit.
Und bevor du dich wunderst wie da die ListView gefüllt wird, sie wird virtuell gefüllt.
EDIT:
Ups, falscher Fehler. Sehe gerade, dass dieses Beispiel nicht virtuell ist. Die virtuelle Lösung war in einem anderen Beispiel.