ScrollWindowEx() rollt die Bildzeilen im angegebenen Fenster. Alleine dadurch weiß die ListBox aber noch nicht, dass ihr TopItem sich geändert hat. Aber warum willst du das Problem über direkte
API-Calls lösen? Ich würde einen eigenen ScollBar (TScrollBar) neben der ListBox platzieren und die Parameter des unsichtbar gemachten ScrollBars auf diesen ScrollBar übertragen. Wird der Thumb des eigenen ScrollBars verschoben (OnChange), dann würde ich versuchen die aktuellen Parameter an den System-ScrollBar der ListBox zu übermitteln. Wenn das funktioniert, dann hast du deinen fetten ScrollBar und der Original-ScrollBar erledigt die eigentliche Arbeit. Ansonsten kannst du über ein wenig Arithmetik (TopItem, ItemHeight, PageSize, etc.) selbst Hand anlegen.
Muss jetzt ins Bettchen - Gute Nacht.