... 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.