Would it be possible to add a new flag to CellNav.scrollTo that would indicate that you don't want the row on the top/bottom, but in the middle of the grid?
I added the following code to scrollToIfNecessary and it seemed to work, but i didn't fully understand how that code was working
pixelsToSeeRow += (bottomBound - topBound) / 2;