Arnaud42 I check frequency on LED1 with oscilloscope: 113.2µs (100µs expected) => but why?
To explicitly answer that question (so you and others know for next time):
Because there is an overhead in calling your ISR before you get to the line of code which resets TMR0. Approximately 26 instructions, given the code currently produced by the compiler, it would seem.
You could manually adjust for that, but you cannot guarantee it will always be 26 instructions:
a) There may be blocks of your mainline code that disable interrupts;
b) If you have other interrupts enabled, those may be being serviced when TMR0 rolls over;
c) You, or the compiler, may add additional code to your ISR before you check T0IF.
Any of these will add further latency to servicing the T0 interrupt.
Another option is to read and adjust the TMR0 value so you take into account the actual latency:
TMR0 = TMR0 - TMR0_CYCLES;
But as others have stated, by far the best/easiest solution is to use TMR2 for periodic interrupts as you can latch the restart value.