Hola que tal, bueno despues de mucho investigar por fin di con una posible solucion

.
La primera es generar una clase en la cual se va a controlar el evento del ENTER cambiandolo por TAB.
Aqui se las dejo por si les puede servir:
Código C#:
Ver originalpublic class UtileriaGrid : DataGridView
{
public bool bTeclaEnter = false;
//Convertir [ ENTER ] en [ TAB ]
protected override bool ProcessDialogKey(Keys keyData)
{
if (keyData == Keys.Enter)
{
SendKeys.Send("{TAB}");
return true;
}
else
{
return base.ProcessDialogKey(keyData);
}
}
protected override void OnKeyDown(KeyEventArgs e)
{
if ((e.KeyData == Keys.Enter) && !bTeclaEnter)
{
SendKeys.Send("{TAB}");
}
else
{
base.OnKeyDown(e);
}
}
}
Esta clase funciona, siempre y cuando ya tengan renglones, pero si ocupan ir anexando con el ENTER no funcionaria por que se cambiaria por TAB
En mi caso no funciona por que ocupo ir anexando renglones

.
Despues de mucho investigar en mi dialogo, encontre que se ejecuta 2 veces el metodo CellEnter, por eso es que me incrementa el RowIndex ( La primera vez se posiciona correctamente en el renglon, pero con la segunda vuelta incrementa el RowIndex), pero por mas que le e buscado no e podido hacer que se ejecute 1 sola vez o bien no me incremente el renglon

. Asi que a seguir investigando haber como lo puedo solucionar