About the issue of capturing inputs from the mouse scroll wheel: I recently found a way to do this after a suggestion by John Fultz. It's a pretty dumb hack, but it works and it seems to be the only way to do it.
The main idea is that there is one avenue for capturing something directly affected by the mouse wheel: the scroll bar in a Pane can be made dynamic with ScrollPosition -> Dynamic[...]. We can abuse this as follows:
DynamicModule[{x = {0.1, 0.}, font = 8}, Pane[ Pane[ Dynamic[Style["HelloStyle["Hello world", FontSize -> font]]Dynamic[font]], ImageSize -> {Full, 1100}, AppearanceElements -> None, Scrollbars -> None], ImageSize -> {Full, 1000}, AppearanceElements -> None Scrollbars -> {False, True}, ScrollPosition -> Dynamic[Dynamic[x, xFunction[ If[#[[2]] >= x[[2]], Function[ font--, font++ ]; x[[2]] = Mod[x[[2]] + 0.001, 0.1, 0.1]; font++ ] ] ] ] The inner Pane is bigger than the outer one to ensure that the outer Pane needs to show a scrollbar. The outer scrollbar is then used to capture scroll events. It's necessary keep the scrollbar away from the two most extreme positions and it also needs to move slightly to prevent outer scrollbars (like the one from the notebook) to scrollfrom scrolling. That's why the Function contains a line that slightly moves the position of the scrollbar and loops it around.
To hide the scroll bar, you can put another, slightly slimmer, Pane around the whole thing, or you can make the scrollbar drop out of the existing Pane with something like:
ImageSize -> {Dynamic[CurrentValue[WindowSize][[1]] - 100], 1000} instead of ImageSize -> Full.