Statt solcher Tricks die betriebssystemabhängig sind würde ich ganz einfach VirtualStringTree nutzen.
Sicherlich hat diese und jene Komponente Vorteile. Ich hatte viel am Anfang ausprobiert und musste feststellen, dass eine ListBox doch am schnellsten ist und ich sie nach meinen Bedürfnissen gut anpassen kann.