At this rate, you could try something like the following:
1.) keep track of 1 us windows of time.
2.) within any 1us window, you will have 20 or 21 crossings.
3.) starting with the first transition in the 1us window, run a counter until you reach some number of (eg, 16 or 19 or 20) crossings, then stop.
4.) at the end of the 1us window, report this value.
This is an approximation, just like using zero-crossings instead of sampled values. It doesn't make use of every zero crossing in order to provide an estimate.