See Answer in post #2...
As has been answered several times in this thread: This is the limits of your hardware.
You can not expect that your hardware which runs at 16mhz is going to be able to detect an IO pin changing more than 16M states of the IO pin, And A cycle has two changes: High to Low to High
or Low to high to low... depending on which way you wish to measure. So 16/2 = Max frequency of 8 Megahertz...
How to go faster with just that hardware. You can not... Except maybe with one caveat, which is trying to overclock the Pro Micro, such as mentioned in:
https://github.com/Phasip/SparkfunProMicro-Overclock/blob/master/README.md
If you really want to better understand why, you should probably download an Atmega32u4 reference and read through it.
Sounds like a lot of work and makes it far less reliable and sounds like maybe 20mhz... So you could maybe get 10mhz sample...
But as the others have suggested, you are far better off getting faster hardware.
If you are still wishing to pursue this, I would suggest that you ask this up on a forum that is more applicable to the Arduino Micro, such as the Arduino forum.
Good luck