I would call it "pulse width modulation", and I think mem's description in the message you reference describes a form of pulse width modulation. The position of the servo is determined by the width of the "on" pulse. If it were a tru PPM scheme, the on pulse would always be the same length, but they would be different times between pulses. (I've read that the actual decoded radio signal is PPM. I dunno.)
However, the "on" time of the pulse is severely limited compared to the PWM that the arduino hardware will normally generate. If you consider the servo position to range from 0 to 100%, the pulse widths involved range from 0.5ms/20ms (2.5%) and 2.5/20 (12.5%) of the total pulse period. (note that the pretty picture of servo pulses you mention is "not to scale." The full right position (2.5ms) is actually only 1/10th of the total period width...) All off (0%) and all on (100%) are not valid inputs. (analogWrite will generate pulses between 0 and 100% for values of 0 to 255)
I don't know what the libraries do. There are several possibilities:
1) set the period to ~20ms, and map the user-provided values to pulses of 0.5 to 2.5ms. With an 8 bit counter, each count worth of pulse width is about 0.08s, so that's about 25 steps of resolution for the 2ms range of interest. That's not TOO bad. It would work better on the 16-bit counter, if there's a 16bit PWM mode.
2) Fire the timer with the max period set to ~2.5ms (about 0.01s per count) and the count set to between 50 and 250 (200 steps; plenty) Arrange for this firing to be repeated at appropriate intervals via pushing the responsibility to the user (refresh() function, as I've seen in some servo libraries), or using interrupts tied to some other timer (even the same timer.)