I think the assumption of your first sentence is basically wrong. When doing a 3 phase drive, the PWM frequency will be much higher than the commutation frequency (in order to obtain good current control, especially with non-constant current per commutation) therefore there is no need for any phase difference in the PWM signals.
For a 50Hz motor, the commutation frequency is 50Hz but the PWM will be a few kHz.
If you're trying to generate three sine waves from PWM with a phase offset, that's totally reasonable. You just have three different indices into your sine table, offset by 1/3 of the table's length. You basically have it with OFFSET_1 etc but you didn't wrap the values so you're reading off the end of the sine table. Do something like this instead:
pwm1=sine256[icnt];
pwm2=sine256[(icnt+OFFSET_1)&0xFF];
pwm3=sine256[(icnt+OFFSET_2)&0xFF]
The PWM signals will all be mostly in phase but that doesn't matter; the sine waves will be out of phase. In fact if you zoom out on your waveform view, you might find that you are very close already.