Delphi Grafiksachen und die
VCL überhaupt sind jetzt nicht mein Mileu, aber einzelne Pixel zu manipulieren ist sicher ziemlich langsam. Falls du wirklich absolute Performance brauchst, gibt es bestimmt irgendwo eine Methode, wo man an ein Byte-Array kommt...
Ansonsten hat ein TCanvas doch sicher auch eine BeginUpdate() und EndUpdate()-Methode? Dazwischen sollte dann dein Zeichnen stattfinden...