This is one of those posts that really has no solution, but it is a question that is asked over and over again.
Email has no option to recall once it is send. So you can not put the cat back in the bag once it is let out.
Microsoft Exchange email server has an option to Recall an email, and this has led many people who work in corporate environments to think that it is a feature of email. This is a feature of Exchange server, not email and there is a big difference. Exchange can basically do what it likes, because all the mail in in the exchange database. Once it leaves that exchange database and going out into the wild of the internet it is no longer under the control of the exchange server and can not be recalled at all. If the mail has been seen by the person it was sent to the recall does not work If the email is send outside the domain (that is to someone outside your business, the recall will not work. For the full details you might read what Microsoft has to say about how their recall implementation works.
Google built a recall into their Gmail system as well, but again it is a fudge. They simply delay the sending of the email for the time they give you to change your mind;. So you get an undo option on the send, but it is not a real recall as the mail was never sent.
So Thunderbird does not have a recall option, simply becasue it is not a part of the mail RFC's which are the core of Thunderbird functionality. So for those that want a similar option to change their mind, there is the send latter addon, which delays sending and provides the opportunity to change your mind and delete mail from the outbox before it is sent.
But by far the simplest method is to make Thunderbird work off line (File > offline > work offline) this means all messages will be stored locally and not sent until you repeat the process to go back on line, or press the get mail button.