In a grid without custom columns (see columns property objectinspector) you could use one of the built in editors by changing "editor" var parameter in grid's OnSelectEditor event handler which is called for every editable cell, something like:
if (Row=2)and(Col=2) then
Editor := grid.EditorByStyle(TheStyle);
where TheStyle is one of: cbsAuto, cbsEllipsis, cbsNone, cbsPickList, cbsCheckboxColumn
but cbsCheckboxColumn is only implemented dbgrid currently.
In this handler you should do any setup like for example filling the picklist with values appropiated to the cell, column or row.
Positioning and sizing is automatic.
if you want your editor always visible (which I get from your editor.show; editor.setfocus) use grid option goAlwaysShowEditor
if you want to use a editor apart from the grid's built in editors, I will have to write that in the wiki, but that will have to wait a little.