What if you did something like
Code:
alias "downonce" "invprev; unbind mwheeldown"
bind "mwheeldown" "downonce"
alias "uponce" "invnext; unbind mwheelup"
bind "mwheelup" "uponce"
bind "w" "+forward; bind mwheeldown downonce; bind mwheelup uponce"
Probably not be the most reliable solution, but it might work.