Arbeite mit Puffer/Caches. Sollte alles um 90% schneller machen, wichtig Begin/EndUpdate Befehle nutzen.
Ps: ich würde mit 2 Puffer arbeiten, einen für aktuelle Anzeige +-50 Einträge fürs scrollen, einen zweiten puffer um auf scrollen zu reagieren und im vorfeld bereits neue daten nachladen.
Pps: Schwieriger wird es sein mit solch einem Verfahren nach etwas "optisch" zu suchen, das sollte im hintergrund passieren per
query abfragen und erst dann in listview.