Use OnPrepareCanvas to highlight the row under the mouse. It is fired immediately before a specific cell is painted. To get the row index under the mouse query Mouse.CursorPos (which is relative to the screen) and convert it to grid pixels by the grid's ScreenToClient method. Finally call MouseToCell to determine the col and row indices of the mouse-over point. Compare them with the arguments passed to OnPreparecanvas to determine whether the currently requested cell needs a different color. Finally, in order to update the color whenever the mouse moves handle the OnMouseMove event and request the grid to repaint itself (Grid.Invalidate).
See attached demo.