Well, the first idea that springs to mind is to use the CCP module in capture mode.
It does the same thing as the code above tries to emulate but it does it automatically, in hardware, in the background and can generate an interrupt whenever it captures the timer value so that the software can handle it.

You initially mentioned "2 or more", then 4 and now up to 15 inputs so I'm not sure. There are 18F devices with up to 10 capture modules (3CCP and 7ECCP) but I don't know about 15....

Is it really mandatory to sample all pulses at the same time instead of one after the other. You mention the pulsewidth of each pulse being 10-7000us but what is the frequency or repetition rate? If the repetition rate is fairly high and the pulsewidth isn't expected to change much over 15 periods (or however many "channels" you want) then I think you can still do it with a small PIC and PulsIn.

/Henrik.