Podľa zdrojového kódu, prusvitky[i].Picture:=img3.Picture volá metódu TImage.SetPicture, ktorá volá metódu TPicture.Assign, ktorá volá TBitmap.Assign, ktorá kopíruje dáta obrázku (GetMem, Move). Zdrojový kód je síce z LLCL, ale predpokladám, že VCL to bude mať veľmi podobné, ak nie rovnaké.
Aby si to zrýchlil, stačí sa zbaviť tohto zbytočného kopírovania. Najjednoduchšie je spraviť komponent, ktorý bude mať 3 bitmapy a zobrazovať podľa stavu len ten aktuálny. Prípadne môžeš spraviť komponent, ktorý sa bude starať o vykreslenie celého poľa naraz. Komponent bude mať vlastnú OnPaint metódu, kde cez Canvas.Draw vykreslíš, čo potrebuješ.
Ak potrebuješ len farbu a nie obrázok, tak namiesto Canvas.Draw vykreslíš obdĺžnik pomocou Canvas.Rectangle (a predtým nastavíš farbu podľa potreby).