You really can't go wrong here. I have a BA in English (was headed to law school). I changed my mind and went back and studied computer science--best decision I ever made. Lots of jobs, good money, work from home opportunities, etc.
The way I see it, he has three options:
1) Work as a programmer without going back to school
Financially, this is his best move. There are a lot of companies out there that don't care where or how you learned to code. They just want people who can code...period. Most of your smaller tech-focused companies operate this way. The downside is that there are some bigger companies that still require a degree in a technical field. Companies that sponsor foreign workers for visas are often extra particular about degrees due to some regulatory issues. Not having the tech degree will absolutely limit the jobs he can get, but not in a terrible way. Instead of 'Company A has good jobs and great jobs, and you need a tech degree for the great jobs' think 'Company A and Company B both have good jobs and great jobs. Company A requires a tech degree for both types. Company B doesn't require a tech degree for either type'.
2)Work as a programmer after getting a BS in a tech area
This is the safe bet. A BS is more than enough for nearly any tech job in the country. Having this degree would be an insurance policy just in case he wants to work at the kind of company that requires you to have a particular degree to qualify for a position. Major downside of course is the time devoted to school and the cost of tuition, but it's pretty safe to assume there will be high quality jobs waiting for him when he's done.
3) Work as a programmer after getting a grad degree in a tech area (this is what I chose and now somewhat regret)
This is the most expensive option, and the vast majority of programming jobs don't require an advanced degree, nor do they offer extra compensation for having an advanced degree. Furthermore, if his passion is app development, graduate computer science degrees will not cover what he's most interested in. As you might imagine, graduate programs tend to be more theoretical. One exception might be if he were to pursue the 'Big Data' field. It's a fad right now, but candidates with the advanced math, statistics, and machine learning skills that are taught in these types of grad programs will most likely be in high demand for years to come. People with those skills are compensated at a higher rate because they're much rarer than your standard app development skills. This kind of 'programming' is very different than what it sounds like he's doing now. If he really gets into math and algorithms, it might be the way to go, but if he's more into application development, he should stay out of grad school. There are plenty of good jobs that will pay him to do what he already knows he loves.
Apologies if that was a bit wordy. It's awfully close to my own situation. It's impossible for anyone to give a definitive answer, of course, so take these opinions with a grain of salt. There may be other people in the industry who will feel differently.