Freut mich.
Mit so etwas habe ich mich auch schon öfter herumgeschlagen, da die
VCL nicht unbedingt auf genaue und sinnvolle Reaktionen ausgelegt ist.
Wenn Du keinen ScrollEvent findest könntest Du im Paint die Scrollbar.Position abfangen und mit dem letzten vermerkten Stand abgleichen.
Gibt es eine Differenz, kannst Du ein Invalidate auslösen.
Es wird dann natürlich häufiger gezeichnet aber dann sollte das Problem so auch lösbar sein.