Nochmal, du schreibst dir einfach eine eigene Methode DeinDrawGridCell
Delphi-Quellcode:
procedure DeinDrawGridCell(Sender: TObject; ACol, ARow: Longint; Rect: TRect; State: TGridDrawState);
begin
// prüfen ob die Zelle selektiert ist
if gdSelected in State then
begin
// rotes Rechteck zeichnen
DeinDrawGrid.Canvas.Brush.Color := clRed;
DeinDrawGrid.Canvas.FillRect(Rect);
end; // if gdSelected in State
end; // of procedure DeinDrawGridCell(Sender: TObject; ACol, ARow: Longint; Rect: TRect; State: TGridDrawState);
Das solltest du dann einfach jeder Zelle zuweisen als OnDrawCell-Ereignisbehandlung (Zelle.OnDrawGrid := DeinDrawGridCell

fertig.