At the risk of being repetitive, the O2 sensor will NOT be the cause. The ECU only reacts to O2 when up to temp and at cruise conditions. At idle, there is not enough gas flow; at normal driving, there is too much variability of gas flow.
Have you done the standard diagnostic test to determine which cylinder(s) cause the rough running? (disconnect each coil in turn, see if the idle changes)
Sometimes, depending on the timing light, checking timing can give incorrect information - the indicated timing is doubled, so you are actually running at 7.5 BTDC at idle.