This (short) code below will achieve what I think you are asking for, on the Atmega328 (eg. the Uno, Duemilanove, etc.).
byte dutyCycle = 80;
void setup()
{
pinMode (3, OUTPUT); // Timer 2 "B" output: OC2B
pinMode (11, OUTPUT); // Timer 2 "A" output: OC2A
// Set OC2A on Compare Match when up-counting.
// Clear OC2B on Compare Match when up-counting.
TCCR2A = bit (WGM20) | bit (COM2B1) | bit (COM2A1) | bit (COM2A0);
TCCR2B = bit (CS21); // phase correct PWM, prescaler of 8
OCR2A = dutyCycle; // duty cycle out of 255
OCR2B = 255 - dutyCycle; // duty cycle out of 255
} // end of setup
void loop() { }
How it works
The code uses Timer 2 (an 8-bit timer) to count up to 255 in phase-correct PWM mode. Outputs are to OC2A (the "A" output - pin D11) and OC2B (the "B" output - pin D3). The duty cycle is in variable dutyCycle which must be in the range 0 to 255. The timer counts up to 255 and sets OC2A on compare-equal to the dutyCycle number, and it also clears OC2B on compare-equal, when counting up. The second half of the phase-correct cycle does the reverse. Thus the two cycles are of opposite phase.
Frequency
The frequency of the timer is 3.9 kHz. This is because the timer has a prescaler of 8, then it counts up to 255, then it takes two cycles per period (one up, one down):
16000000 / 8 / 255 / 2 = 3921.56 Hz
As Edgar Bonet pointed out in the comments, phase-correct PWM counts are not zero-relative, unlike other counting modes. Thus you divide by 255 to work out the frequency, not 256.
You could select other frequencies by choosing different prescalers.
Proof of operation
The oscilloscope screen here shows the two outputs, out of phase with each other by 50%.
You can see from the circled cursor measurement that the OC2B pin is off for exactly the requested duty cycle (80 µs).
1/ 16000000 * 80 * 8 * 2 = 8e-005 (0.00008) --> 80 µs