$400 is a small enough amount that he will probably be able to find some way to cash it. There may be a fee, but probably not as high as $15.
Banks may not cash a check if you don't have an account, or they may charge a fee. You could call and ask.
However, there are many places you can cash a check besides banks. Many grocery stores, for instance, will cash checks for a small fee. Walmart says they will cash a check under $1000 for a fee of $3 with "no registration required" and specifically lists tax checks among the allowed types of checks. This article from last year says Kroger stores will cash checks up to $2000 for a fee of $3. (Sometimes these places won't cash personal checks, but a tax check should be okay.) There are also check-cashing services. They charge higher fees, but as long as the fee is less than about 3%, it still won't be as much as $15.
Given all these options, I'd say there is pretty good likelihood of being able to find some way to cash the check for less than $15. If he really wants to be sure and/or minimize the fee, he can call some banks or grocery stores in the area he'll be visiting and ask what their check-cashing policy is.
(Of course, he'll probably want to spend that $400 while still in the US, otherwise he'll have to pay the exchange fee anyway to get it into Canadian dollars to use when he goes back home to Canada.)