I haven't done this, but my first thought is to use light, or more specifically detect the shadow of the bullet. However, I wouldn't rely on ambient light. I'd use a deliberate light source, probably a IR LED. A small string of IR detectors would be accross the hole from the LED, spaced so that at least one of them will see the bullet shadow regardless of where it passes thru the hole. All this would be mounted on the back side of the hole to avoide damage from a mis-aimed bullet. The LED can be a little ways sideways from the hole so that it's beams are more parallel accross the back of the hole.
The speed of your bullet is 200 m/s, which means it takes 5 µs per mm. The bullet is 5 mm long, so the duration of the shadow is 25 µs. If you just amplify the detector signals and present them to a processor, you'd have to sample every 10 µs or so, which is 100 kHz. I have no idea where you got 40 kHz from, but that is too slow.
10 µs/sample is fast but doable. Some of the dsPICs can run at 40 MHz instruction rate, so that gives you 400 instructions/sample, which is actually quite a lot. The problem is you need multiple detectors, maybe around 10 of them. 40 instructions/sample might be doable if you write the code carefully and keep the A/D going overlapped with processing the previous sample.
Brute force fast sampling may actually be a good way to do this. It would certainly be the simplest in terms of hardware. However, there are some other possibilities that greatly reduce the firmware burden for a modest increase in hardware complexity and cost.
One possibility is to combine the multiple sensor signals into one in analog. Simply averaging may be good enough, although you lose some signal to noise ratio. If only 1 sensor of 10 sees the shadow, then the signal will be down by 90% or 20 dB. Still that might be doable. There should not be a lot of high frequency ambient noise at the detector wavelength, so the no-bullet signal should be pretty clean. With a 12 bit A/D, it's quite possible that a bullet can be reliably detected by simply looking at the average. Each of the signals would be high pass filtered first, and then amplified so that a bullet shadow is nearly full scale. Averaging 10 of those would result in 1/10 of full scale signal, which is most likely good enough compared to the noise level.
Another possibility is to take the minimum of all the signals in analog after each one is separately high pass filtered. The resulting signal would then be the largest short term dip measured by any sensor. This is a bit more complicated in analog, but should certainly give you a strong and clear signal that the micro only needs to sample every 10 µs, which we already determined was a "long" time.
Brute force hardware would put a separate shadow to digital signal circuit after every detector. These can be ANDed to yield a single digital signal that indicates the bullet shadow. This may be the way to go if you are allergic to microcontrollers. Personally I don't like this approach because I'd rather have the micro interpreting the analog signals or signal so that there is opportunity to do some intelligent filtering.
In any case, attention to getting a good clean signal from each sensor in the first place will be worth it. The LED should shine accross the back of the hole, only a few mm behind it. There should be baffles around the LED and the light sensors so that ambient light can't get directly into the sensors from any angle. I think the signal to noise ratio will be quite good with a fairly easy to build setup.
I just had a thought about how to possibly combine the signals in analog very easily. Assuming each sensor is a reverse-biased photodiode, the current thru each will be proportional to the light hitting it. In effect, the light makes the diode leak when reverse biased. The leakage current is rather insensitive to voltage accross the diode, once it gets to a volt or so.
The idea therefore is to put all the photodiodes in series. When sufficient voltage is applied to the string, the current will be limited by the diode seeing the least light. When a bullet comes along, the one diode in the shadow will limit the current, even if the others are dead shorts. In this special case, you get a min function just by stringing the sensors in series. This also means you only need a single filter and amplifier circuit.