Hola, talves puedas primero preguntar por cual boton esta presionado , se me ocurre...
Private Sub MSFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
'botón primario (bit 0), al botón secundario (bit 1) y al botón central (bit 2).
' preguntar si se oprimio el boton central
If Button = 2 Then
' y le dices al grid que cambie la fila seleccionada
MSFlexGrid1.RowSel = MSFlexGrid1.RowSel + 3
' esto mientras no se pase del total de filas >> MSFlexGrid1.Rows
' lo condicionas o lo trabajas con un ciclo
End If
End Sub
pero esto ocurre mientras este abajo, asi q tambien hay que condicionarlo mientras que no ocurra el evento MouseUp,
Otra duda que sale a flote, es como darse cuenta en q direccion se gira el Scroll <<-- O -->>, trataré de investigar... espera mas aporte o ideas... suerte