If you have a PIC with the ECCP (enhanced capture and compare) module built in and a separate oscillator for TMR1, you can use the 32kHz crystal to run TMR1 and get the hardware to generate the pulse when TMR1 and the ECCP period register match. (Well, the match condition actually generates an interrupt so your interrupt routine consists of generating the 100ms pulse on whatever output pin). This way you don't have to worry about the instruction execution time at all. It enables you to make changes to your code later on without having to recalculate the instruction time again. You don't actually need the separate TMR1 oscillator, use the 32kHz crystal as the PIC's main oscillator and feed TMR1 with it if your PIC is not doing anything else that requires a faster clock.
If you don't have the ECCP module, then interrupts are mandatory for accurate timing. If you're manually checking the T0IF or TMR1IF bit in a loop to detect an overflow, it's virtually certain that your code will not check the bit at exactly the same time as the overflow occurs. This way, timing errors accumulate, especially if you're having to prime the timer on each overflow. With interrupts, you can be sure that the interrupt occurs bang on time every time. You still have to know the exact duration of the interrupt routine, but code changes become much easier and the timing is more reliable. But not as reliable as the ECCP module - definitely use it.
PIC12F1822 is a very good low cost 8-pin device, it's got everything in the world on it, and it's on par cost-wise with a 12F615. If you're being really tight, a 10F204 will do it, but do use the TMR0 interrupts to increment/decrement your timing registers, and don't prime the timer on overflow.
It sounds like you're not actually using the timers at all - manually incrementing or decrementing registers with INCFSZ or DECFSZ instructions can get pretty good accuracy, but it's a hell of a lot of work. Also, one minor change to the code will bugger up the whole thing. And you MUST do it in assembler.
ECCP module - that's the way to go mate...
I designed an analogue clock movement for a local clockmaker years ago, it used a big stepper motor to drive the hands (his clocks are anywhere between 2-20 feet in diameter). It used the Rugby (now Anthorn) MSF transmission to set the time automatically, the clocks go on the side of buildings where setting them twice a year is impractical. In the event of a lost MSF signal, the clock had to keep accurate time all by itself indefinitely, and the ECCP module was essential. It was about 30 pages of assembler - that was before I knew C.