As I said, the course that was AAB in the 90s is now A A A.
The reality is, engineering has massively increased in popularity as a degree, there has been significant grade inflation and there are very popular qualification routes that don't involve a degree. DH was actively discouraged from doing engineering in the early 90s as it wasn't seen as a 'good' career (he regrets this now - it would have been a very good degree/job for him).
As others have said, it doesn't mean he can't become an engineer but that he needs to either look lower down the list (since when has Southampton been thought of as a lesser engineering degree?!) or he should look at apprenticeships. There are lots of mechanical engineering degrees that take at AAB or lower, it just isn't going to be top 20.
As someone else has said, if he does come from an disadvantaged educational background then offers may be lowered for him as well but you seem to accept he's just not a straight A* student, which I've taken to be you also saying that there's no realistic way for him to increase his grades by working harder. Given there are limited numbers of places why should he get a place over someone who is?
It's a hard thing to have to accept but the reality is children can't 'do whatever they want to do' if they just 'try hard enough'. People have limitations and you need to support him to work within those, stretch them yes but the child who isn't academically capable of A A A* on a good day us just never going to go to Imperial for engineering. It's really common when looking at university applications for students to get their first hard hit from the real world when realising that they can't do the degree they really want to.
He absolutely can become an engineer, it's just he has to look at the more realistic routes in than a top 20 degree course.