fastest pulse?

... do your digitallwrites as needed

Agree with CrossRoads,

I know I can time with milli's,

Use micros() instead => a 1000 Hz signal needs 2000 switches

optionally use direct port manipulation - Arduino Reference - Arduino Reference - to optimize accuracy.