¡Uy! Disculpa, leí mal.
Entonces podrías usar GetCaretPos para obtener la posición relativa a la ventana y luego usar ClientToScreen para convertir a coordenadas globales. Sin embargo la ventana donde está el caret (cursor) será la del cuadro de edición de la celda que está dado por la propiedad protegida InPaceEditor del grid. Puedes tratar de acceder a él usando el viejo truco:
Código:
type
THackGrid = class(TDBGrid);
y haciendo el "casting":
Código:
THackGrid(DBGrid1).InPlaceEditor
Claro que ya accediendo al InPlaceEditor-- que es un descendiente de TCustomMaskEdit) --puedes directamente encontar su posición y colocar tu formulario acordemente.
// Saludos