Ich würde eine neue Klasse bauen, die von TCustomControl ableitet. Dort einfach Paint() überschreiben und immer das ganze 'Bild' neu malen. Falls du ein Beispiel suchst, schau mal in die Quelltexte von
streamWriter, in der Datei CutView.pas ist etwas, was dem, du hier vorhast, sehr nahe kommt.