how fast can the arduino switch a transistor?

Open & close for 1000uS? Use blink without delay, any IO pin can handle that.
Something like this. Declare all the variables, add pinMode for output pin, etc.
Then in loop:

void loop(){
//all time related variables unsigned long
currentMicros = micros(); // capture the "time"

if ( start signal for pulse is detected ){ // what kicks things off?
pulseCreation = 1;
previousMicros = currentMicros;
PORTD = PORTD | 0b00000100; // port manipulation, set D2 high for example
}
// check if it's time to turn the pulse off
 if (pulseCreation == 1){
 elapsedMicros = currentMicros - previousMicros;
   if (elapsedMicros>=1000uS){  // 100uS is a variable name too
   // 1000 to 1004uS typical
   PORTD = PORTD & 0b11111011; // clear D2 low
   pulseCreation = 0;
  }
 }
} // end loop