IMAP is designed to be always-on so when Thunderbird starts, it's only natural that it wants to check what's happened since last time. If you want a polling-based model, you might want POP3 but even then an initial check is the sane thing to do.
By extension, the "check for messages at startup" option only really works for polled email methods like POP3 where the client does have to go out and "fetch" batches of new messages. With IMAP, it's just connecting (as it needs to) and sees them.
I have a few options for you:
You can start Thunderbird in offline-mode by calling
thunderbird -offline. You won't go online (so won't have access to most of your messages) until you switch to it from inside Thunderbird.
You could use a timed DNS blocker. Things like Stay Focussed and Get Shit Done are scripts that block the DNS for certain hosts so you are required to live without those servers. I'm suggesting you add your email host to that list. Might work. See:
Use a caching IMAP server. Something that fetches your mail from the real IMAP server and presents it as another IMAP server. You switch Thunderbird to reach into your local server and then it can check as much as it likes and it's not wasting bandwidth.
The obvious problem here is the time spent setting this up. Add the delay you'll get before new messages hit your inbox and you might be less tempted. Oh yeah and you'll want this to be secure. Shouldn't be too much of a pain if this local only, but keep that in mind.
If you want to persue this route, I'd suggest something like
fetchmail for the grabbing and
dovecot for the local serving.