The only way I can think of doing it is to use a TImageList and override DoCalcTitleImage. Heres a stripped down version where I have subclassed the grid and added support for various images on the columns.
procedure TRGDBGrid.DoCalcTitleImage(Sender: TObject; Field: TField;
var TitleImageAttributes: TwwTitleImageAttributes);
begin
inherited;
{ Get Image Number }
lAttr := Attribute_Of_Field;
TitleImageAttributes.ImageIndex := ord(lAttr);
end;
You can use two images - an unchecked and a check checkbox. And you need to use OnTitleClick event to handle it.