TsDBGrid reproduce de same error.
On TDataSet assigned to grid handle AfterScroll event, like this:
procedure TForm1.ClientDataSet1AfterScroll(DataSet: TDataSet);
begin
Self.Caption := ClientDataSet1.FieldByName('NAME').AsString;
end;
Then You will have a paint problem on grid.
I made a new sample with TsDBGrid.
Best regards
Dirceu