Maybe this is misguided cheat, but couldn't you map any real number (between 0 and 1) to a natural number by mirroring the decimal digits across the decimal point. So 0.123 -> 321, but also sqrt(2)/2 -> ?601707 where ? is the rest of the decimal representation. This creates infinitely large numbers, but it's still a 1-to-1 mapping.
Unfortunately, numbers with infinitely many digits are not natural numbers. You cannot count to ?601707, even with an infinite amount of time.
Oh right this is only true for irrational and transcendental numbers