Actually, I don't see why you couldn't do that with interrupts...
But, at any rate...
If you're that worried about missing a clock/data pulse, maybe put EVERY bit into a bit array while you are receiving it, including the initial 16 clock pulses, and every one of those 32 clock pulses and/or data bits into a big ol' bit array. Then after you've got all those clock/data pulses, run them thru the laundry after you get done receiving.

How fast are these clock pulses anyways? A nice, tight If/Then or While/Wend or Repeat/Until loop storing bits would be pretty dang fast... Unless you're trying to pull in something in the Mhz range... Ya, then you're probably looking at going into something a bit more specialized.

Are you afraid of using the interrupt method of doing things?
Once you try DT's Instant Interrupts and get used to them, you'll find that they are inherently fast, little (if any) wasted time, and might just be the ticket you want...