What I mean is seek to volunteer work at real companies rather than paying them. You may be learning but it sounds like you have some knowledge so you should still be providing them with some value.
I disagree completely. He is doing the right thing. Be upfront, pay the company, this sets the right expectations. The seniors devs have an obligation to mentor him and do it well, not just delegate him internship crap work. It would definitely be worth it for both parties.
And what will probably happen is that some scummy company will happily take his money and he will still be delegated the internship crap work. What you're describing is a school, but a school doesn't ship production code to clients and has teachers at the ready to mentor anyone who needs help. An internship is just a way to get the foot in the door with some light mentoring which usually consists of a senior pointing you in the right direction, not actually teaching you the stuff.
This will probably less of a problem if more companies offered internships to inexperienced graduates instead of just undergraduates. The idea that you must be a student to qualify for an internship is an outmoded one, especially in a field of work where there are lots of autodidacts.