I think you have to scale back your expectations. He's 2. He doesn't understand what a birthday is, let alone what a theme is. He does not care. His friends do not care. He will not care when he is 3 or 4 or 5. Really, he won't. And little kids do not enjoy organized activities. They don't like iced tea and parents don't let them drink it usually. They don't do well in large parties with 20 kids. Children don't handle big gift-fests well either. The birthday child gets overwhelmed with a bunch of presents, and the guests want to know why they can't play with them. If you don't open gifts, the guests never get to see the pleasure on the child's face, and the child never grows up learning to say "thank you". So it starts a whole bunch of headaches.
So decide who you are doing this for. So that you will have great pictures? Understandable. So that you can show the other parents that you are creative and spend a lot of time planning? What if no one notices? What if 2 year olds don't understand what diesel fuel is and what a water tower is? We all like compliments. But please, don't get sucked into the stress of children's parties and trying to outdo what you did last year. You will be happier for it.
I'd scale way back. Get a few paper plates or a helium balloon with Thomas on it. The bakery or the supermarket can make you a small sheet cake with Thomas on it. I like the idea of using what you have on hand - putting the food in "train cars" behind an engine he already owns. Simple and economical!
I love the suggestion below about creating a train out of moving boxes! Home Depot has a bunch of moving boxes in different sizes for about $2 a box. Buy 5, along with a box cutter and a roll of tape. Then assemble them and cut holes with a box cutter so the kids can crawl from one to the next. Cut a few "windows" so they can see and peek out at you. Buy some black plastic dinner plates at the party store and glue them on as "wheels". Put an oatmeal box on the "engine" as a smokestack. Don't worry about the writing on the boxes. No one cares. And they will think you are brilliant.
Pizza and drinks are fine. I doubt the kids will come out of the train long enough to eat it, but that's okay. Parties are about fun and getting together, not about so much work ahead of time that either you're too tired to enjoy yourself or you have too much invested and are disappointed if the children are not overwhelmed with joy by the theme. They really don't care - they just want to run around and play.