Fun fact: On a DOS PC, typing these codes was possible even on a keyboard without a number pad, by using the cursor keys instead. This works because those keys produce the same scan codes (with the only difference being either the presence or absence of some prefix byte, depending on the NumLock state).
0 = Ins, 1 = End, 2 = Down, 3 = PgDn, 4 = Left, 6 = Right, 7 = Home, 8 = Up, 9 = PgUp (and by exploiting the mod 256 parsing, it should always be possible to find a code that doesn't contain the digit 5)
Don't know if Windows emulates this, probably not. I wouldn't be surprised though if some part of the Windows keyboard driver translates the (different) scancodes sent by an USB keyboard into the legacy ones, just like the Alt+number handling does expect codepage 437 when there is no leading zero :)
Some might say that this kind of "cruft" is what makes Windows a horrible OS - but IMHO it's really cool to find such backwards compatibility, and sad when it goes away for no good reason, to be replaced with entirely new cruft that logs everything you do on your "Personal" Computer and sends it to some cloud service...