The mouse wheel event only moves in multiples of 3 lines (by the system default). According to http://msdn.microsoft.com/en-us/library/ms997498.aspx , it should scroll a fraction of that whenever possible. I've some code which aims to replace ScintillaWin.cxx lines 881-909 to get this done, but I have not tested it yet. My patch should scroll marginally less than the original because of the floor/ceiling calculations, but that is negligible.
Also, if there is no reason for allowing to WM_HSCROLL past the right side of the window, why not add the 3 lines of checking for SB_LINEDOWN from the SB_PAGEDOWN (see ScintillaWin.cxx lines 2357-2359)?