intenta esto, teniendo una imagelist con dos bitmaps, una para el estado cheked y otra para el unchecked, el evento es el OnDrawColumnCell:
Código:
if Column.Field = campo then
begin
DBGrid1.Canvas.FillRect(Rect);
if campo.value = 0 then //unchecked condition
ImageList1.Draw(DBGrid1.Canvas,Rect.Left+10,Rect.Top+1,0)
else //checked condition
ImageList1.Draw(DBGrid1.Canvas,Rect.Left+10,Rect.Top+1,1);
end;