At one point this was implemented as a patch to gnome-terminal, then later added to VTE (the library which both use for almost all of their functionality).
For instance, in 2012, Steve Zesch commented in an early bug report for MATE Terminal
This was a feature that the Ubuntu devs patched to gnome-terminal. It relies on a patched version of vte that, once again, the Ubuntu devs patched. Since these patches were either not contributed or rejected upstream, our code-base doesn't contain them. In the future, the Ubuntu devs will have to apply these patches to mate-terminal.
In other words, we can't build these because not every distro includes the patched version of vte that this feature requires.
And later, in 2014 you can see the patch mentioned in
where Vlad Orlov noted
What's more interesting, the patch in gnome-terminal now does nothing
1 because the functionality has been added upstream in VTE3 (libvte-2.90-9)
2. That means the alternate scroll is always on and can't be disabled.
1 https://bugs.launchpad.net/bugs/1340067
2 https://git.gnome.org/browse/vte/commit/?id=9f8c1b88dcd880c2d9e78c93521ee755560a9275
The latter was committed 2013-09-30, to implement the private mode 1007
Ps = 1 0 0 7 -> Enable Alternate Scroll Mode.
which was implemented in xterm in patch #282 (a year before: 2012/09/28) to address
that is, providing an optional method for implementing a feature said by the user
This is obviously a hack, but I want it.
VTE's commit-log omits the tie-in to xterm, though the related bug report comment by the developer states
Christian Persch 2012-10-08 21:17:39 UTC
BTW, xterm 282 now implements this behaviour as well, via the new DEC 1007
control sequence. [See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=683942]
Because VTE hardcodes the initial value of this feature to "on", ultimately MATE Terminal will get that functionality without change when it is adapted or rebuilt for newer VTE releases.
For reference, the version of VTE which would be needed is 0.34.9