One way you can do it is to refresh the old cell after drawing the rectangle over the new cell.
Private oldRow As Integer = -1
Private oldCol As Integer = -1
Private Sub Grid1_CellDrawn(ByVal sender As Object, ByVal e As GridDrawCellEventArgs) Handles Grid1.CellDrawn
Dim cc As GridCurrentCell = Me.Grid1.CurrentCell
If e.ColIndex = cc.ColIndex AndAlso e.RowIndex = cc.RowIndex AndAlso Not Me.Grid1.PrintingMode Then
Dim brush As New SolidBrush(Me.Grid1.AlphaBlendSelectionColor)
Try
e.Graphics.FillRectangle(brush, e.Bounds)
Finally
brush.Dispose()
End Try
If oldRow > -1 And oldCol > -1 And (oldRow <> e.RowIndex Or oldCol <> e.ColIndex) Then
Grid1.RefreshRange(GridRangeInfo.Cell(oldRow, oldCol))
End If
oldRow = e.RowIndex
oldCol = e.ColIndex
End If
End Sub