You can handle the QueryNextCurrentCell event and specify the behavior you want.
private void gridControl1_QueryNextCurrentCellPosition(object sender, GridQueryNextCurrentCellPositionEventArgs e)
{
GridRangeInfo range = this.gridControl1.CoveredRanges.FindRange(e.RowIndex, e.ColIndex);
if(range != null && !range.IsEmpty
&& (range.Top != e.RowIndex || range.Left != e.ColIndex))
{
this.gridControl1.CurrentCell.MoveTo(range.Top, range.Left);
e.Handled = true;
e.Result = false;
}
}