Some long while ago, as a thought experiment, I 'designed' a time capture FPGA.
It had a ring oscillator, conventional other than the fact it had 41 inverters. The period was thus much much lower than the delay of any gate. The FPGA process had individual gate delays down in the 10s of pS where the routing was local and the fan-out low, but could only handle system clocks in the order of 100s of MHz, due to multiplexing, routing and loading delays between blocks.
The time capture process then used 41 D-latches, each capturing the input transition, but of course clocked at different phases of the ring counter cycle. The outputs of the D-latches could be interpretted as a 'thermometer code', interpolating the input transition to sub cycle precision, with a resolution in the 10s of pS. Another 41 D-latches captured a reference clock.
There are two main difficulties with such a structure. The first is getting the synthesis tools to lay out the ring counter and lines to the D-latches in a high-speed way. This part would probably be better handled by direct manual placement. It might need a specific type of small high speed FPGA, perhaps one without multipliers and processor cores in! The second is race-free handling of the overlap between the thermometer code, and a conventional counter clocked by the lower frequency reference, but it can be done, taking care of metastability issues.
I didn't pursue it as I found a better way of solving the problem, but it was fun.