A programmer high on the compensation scale will typically have decided to stay on the "Individual Contributor" track and top out as a "Distinguished Engineer" or similar title, but still be considered as a programmer. A PM who has advanced to a similar level, on the other hand, is likely to be some sort of VP or SVP and considered an "executive". That is to say the PM compensation track divergers, while the Engineer's stays the same
Let me be more clear: I'm talking about something like an MTS or Senior Engineer, rather than a Fellow or Distinguished Engineer (and FWIW, at many firms, a Fellow/Distinguished Engineer may very well have compensation comparable to a Director/VP).