Is this a dialog or not?
If it is a response to the first statement, someone could express incredulity by saying "he could not have been drinking."
If it's a continuation of the first statement, then "should" is correct. The actor is to blame and the speaker is chastising him.
"Should" is the best answer, but you could make a case for "could" in the scenario I described.
In either event, it should say "have been drinking."