You're right. I just noticed my time units were inconsistent in my post above. If you can't decrease your system clock, you'll need to use a second register to keep track of how many times the 16 bit timer rolls over.
Bigdogguru states that your prescaler options are 8, 64, 256, and 1024 for the ATTiny44/88. If you use a prescale of 1024, that means for every 1024 ticks of your 4 MHz system clock will increment your timer by 1. So for every tick of the timer, that equals 1/4Mhz * 1024 or 256uS. The maximum delay through the 16 bit timer is 65535 * 256uS or ~16.78 seconds. So instead of running the full range of the timer, select a convienent value like 8 seconds. Now your 16 bit counter only has to count up to 31,250 (8 seconds/256uS). I guess you can pre-load the timer with 65,535-31,250 and track the interrupt as it rolls over. Now you have a timer that runs for 8 seconds. Use a second register to count to how many 8 second intervals have passed. Since there 1800 seconds in 30 minutes, the second register needs to count to 225.
I used nice, round numbers to make the math easier but the concept can be used to set your delay. I'm sure it's not exact as there are incruction cycles that are not accounted for but it should be pretty close.