There was no way of getting through Rome's walls, and Rome had better ability to field new armies after defeats.
Maybe, in a very far-fetched scenario he could have succeeded. If Hasdrubal and Hannibal had had telephone contact, and Hannibal would have won at Cannae, then moved north to meet Hasdrubal, and join forces there instead of having Hasdrubal getting killed. Then they could march down to Rome slowly, while helping to install gallic rulers, garrisons and a clever constitution in every city along the way to keep them under gallic rule. They would then occupy a few fortified cities near Rome, and sending away or exterminating all locals in these cities. Then, once at Rome, they could have used something like the circumvallatio, or maybe just the castrum that Pyrrhus used not too long afterwards, to siege Rome safely, assuming he could either assault or naval blockade Ostia... With that method they could maybe have won, despite a smaller supply of men, ships and money. Probably not 100% impossible scenario, but unlikely (especially the telephone).
To give Hannibal the credit he deserves I don't doubt for a second that Hannibal would have been able to easily defeat Carthage if he had been on the roman side!
Bookmarks