Yes, end-to-end encryption is possible. It just needs support in clients, as well as a common protocol if you want it to work between different clients.
Mastodon has actually done some work towards that but I don't think it's useable yet, see https://github.com/mastodon/mastodon/pull/13820
Not saying that that's what happens on Mastodon instances, I don't know enough about it's operation to comment.