Gracias Casimiro por la respuesta.
Al final modifiqué el código y al guardar el registro ejecuto esto en AfterPost:
Código Delphi
[-]
Var ID: Integer;
....
ID := ZQEstudios.FieldByName('ID').AsInteger;
Consulta.DisableControls;
Consulta.Refresh;
Consulta.Locate('ID' , ID , []);
Consulta.EnableControls;
Es otra "chapuza",
pero funciona. Utilizo una variable temporal llamada ID para guardar la posición, luego uso locate con esa variable como parámetro de búsqueda.
ID es la primary key de la tabla, y teniendo en cuenta que existe un índice para esa columna, el posicionamiento usando LOCATE es prácticamente instantáneo a la vista del usuario final.