I know how you feel, my B16 is like that sometimes, but I think I found out its becaust of the alternator. I mean sometimes I will STOMP my friends car, and then sometimes I can't catch up to him. BUt I also found out that my rotor screw came loose and tore up my whole cap and bent all the metal contacts at a 90 degree angle, not to mention it tore up my rotor. My alternator was charging and then not charging and charging and not charging, so it wouldn't have enough power to push the ignition far enough. I think that was the only problem. We will see tho, I got it rebuilt and am picking it up today. Also, don't underestimate the power of a good engine flush, oil change, and tune up.
Another thing, if you are lucky like me to have access to 110 octane race gas (I get it at m local Sunoco) throw about a gallon or gallon and a half in there, and it will burn hotter thus breaking up some of the crap in your motor.
I did it on my friends BMW and another friends 240, and they used to lag a little and now they dont have the lag anymore.
Well I will see how it runs when i get the alternator back now.