The way the code is implemented timer0_millis increments by 1 every 1.024ms then there is a "correction" every 41 milliseconds and it actually increments by 2. Another variable timer0_fract increments by 3 until it reaches 125 indicating it counted 24 times out of 1000 (3/125-->24/1000).
Think of it like this table:
| Actual Time | | timer0_millis | | timer0_fract |
| - | - | - |
| 1.024ms | 1 | 3 |
| 2.048ms | 2 | 6 |
| 3.072ms | 3 | 9 |
| ... | ... | ... |
| 41.984ms | 41 | 123 |
| 43.008ms | 43 | 1 |
| 44.032ms | 44 | 4 |
| 45.056ms | 45 | 7 |
Thus the correction leads to a hiccup between 41 and 43.