Well that link takes me back, it is the sort of thing I used in the 70s to produce writing on a TV set for decoding radio teleprinter signals. This was before micro processors arrived on the scene.
should give me a ~3.1 mhz pulse which (i am pretty sure) the arduino can pick up on to sync with the register
Do the maths, you are not going to do this even with assembler, this gives you roughly 5 clock cycles to detect an edge read some memory and write out data to the shift register.