Aunque no lo he probado creo que podrás valerte de algunas propiedades y métodos que en el TStringGrid si son públicas, por lo cual solo deberás decirle a tu DbGrid que en determinado momento se comporte como un StringGrid.
Recuerda que esto no lo he probado es solo una idea que te puede abrir el camino:
Código Delphi
[-]
Var
Rec : TRect;
begin
Rec := TStringGrid(DBGrid1).CellRect(
TStringGrid(DBGrid1).Col,TStringGrid(DBGrid1).Row);
calendario.Top := Rec.Bottom;
calendario.Left:= Rec.Left;
end;
Espero que esta idea pueda abrirte las puertas hacia donde quieres.
Saludos Yusnerqui