Osobně bych obrázky nasázel do TImageList
V OnDraw události StringGrid pak zavolat ImageList.Draw() - předá se canvas, kam a index obrázku.
Pokud tam chceš kreslit opravdu CheckBox nebo Tlačítko, pak je možné použít VCLThemes a zavolat vykreslení konkrétního elementu.
Tady máš příklad na vykreslení pomocí Styles i bez nich
https://stackoverflow.com/questions/42835758/delphi-place-a-checkbox-inside-a-dbgrid-themed