Can you use the GridWrapCellBehavior.WrapGrid setting? This will move to the upperleft when you leave the lowerright cell. (It will not leave the current cell where it was which is what I think is happening now).
If you can't use WrapGrid, then try handling this event and explicitly moving the current cell where you want it if you are moving off the bottom right cell.
private void gridDataBoundGrid1_QueryNextCurrentCellPosition(object sender, GridQueryNextCurrentCellPositionEventArgs e)
{
GridCurrentCell cc = this.gridDataBoundGrid1.CurrentCell;
if(cc.Renderer.ControlText == "1"
&& e.ColIndex == this.gridDataBoundGrid1.Model.ColCount + 1
&& e.RowIndex == this.gridDataBoundGrid1.Model.RowCount
)
{
//move it back a column
cc.MoveTo(e.RowIndex, e.ColIndex - 2);
e.Handled = true;
e.Result = false;
}
}