Es ist völlig richtig nur im OnDrawCell zu zeichnen.
Um das Neuzeichnen des ganzen Grids auszulösen:
Will man gezielt eine bestimmte Zelle neu zeichnen lassen:
Delphi-Quellcode:
procedure InvalidateCell(AGrid: TDrawGrid; ACol, ARow: Integer);
var
lRect: TRect;
begin
lRect := AGrid.CellRect(ACol, ARow);
InvalidateRect(AGrid.Handle, @lRect, True);
end;