We had a similar problem where we wanted precise control over I/O events.
In our case we had up to eight serial ports. Our solution was to use an
intelligent front end processor, actually a Digiboard. We then did some
custom programming for the digiboard so that all the interupt load was
taken off the main processor. This is probably not at all what you want to
know about !
However there is always some limit to the accuracy of timing that you can
produce by using interupts. It depends on what else is running and how
long it turns off the interupts. If you use the processor in PC you can
never be sure that a new application ( or version of the operating system
!) will change the limit.
If you program at a low level you can guarantee the timing. But it is very
hard work, and definitely only a last resort – when nothing else will be
adequate.