Am wichtigsten wäre erst einmal beim Formular und den anderen Komponenten DoubleBuffered auf True zu setzen. Das reduziert das Flackern etwas.
Zudem sieht es so aus, als ob du jedesmal alle Komponenten neu erzeugst.
Das macht keinen Sinn. Wenn du schon so viele Komponenten benutzt, dann solltest du sie zumindest wiederverwenden.
Und die sinnvollste Variante ist, dass du gar nicht erst so viele einzelne Komponenten benutzt. Ein Beispiel findest du z.B. hier:
http://www.delphipraxis.net/132375-p...-beta-6-a.html
Das ist ein Periodensystem und zwar nicht ganz das selbe, aber vom Prinzip her genau was du machen kannst. Einfach den Inhalt selbst zeichnen und auf einer TPaintBox darstellen.