DoubleBuffered ist hier eher schädlich, da du ja selbst bereits das Bitmap offline zeichnest und dann per BitBlt auf den Bildschirm bringst. Wenn das noch DoubleBuffered ausgeführt wird, ist das doch doppelt gemoppelt.
DoubleBuffered hilft hier (Zumindest noch Unter Delphi 2009). Soweit ich mich erinnere die Paintbox löscht/überschreibt mit einer Farbe ihre Zeichenfläche erst und ruft dann onpaint erst auf.
Alternative wenn ohne doublebuffered und das Bitmap die ganze Fläche ausfüllt, eine eigene Componente von der Paintbox ableiten ohne löschen des Hintergrundes.