Can a 16f877a do this?
A few things I notice about your code. First, do you mean to use:
timer_time = (0x100 * overflow_acc + TMR0) * 0.000064;
Next, it appears that you are using a prescaler of 64 at 4 MHz clock. You'd be more accurate if you use a prescaler of 1 (because you don't know the value in the prescaler). Of course, you'll have to handle the overflow_acc 64 times more often.
Also, if timer_time is an integer and you multiply by 0.000064, as I suggest, you'll loose almost all of your precision. Ever thought of expressing the period in uS? If timer_time is a floating point value, this is not a problem.