PWM is a 'blocking' command, synchronous, one-at-a-time...
While a PWM command is executing, nothing else can run. PWM is software driven, bit-banged, etc.

HPWM on the other hand is hardware driven. Set the registers and it runs without further program intervention, aside from changing the frequency and/or duty cycle.