I disagree. Volunteers do not typically have the same responsibility or commitment as paid staff. At that point, it becomes the PI taking advantage of a volunteer.
At my alma mater it is common for students to volunteer or work for credit first and then get asked to stay for pay later, especially if your credentials at the time of applying were lackluster. A few months is a short period of time, but after 2 semesters or a full summer? I think that's appropriate. The right way to approach it would be to tell your PI that you appreciate the opportunity he's given you to train in his lab, you've learned a lot, but you can't afford to only volunteer anymore. Ask if there is any room in the budget for you to be taken on as paid staff (or if there will be soon) and be prepared to leave or cut back hours if he says no. You could also ask for credit instead of pay, as dropping a class to do research for credit would open hours up to work for pay elsewhere. If you truly are operating like the paid staff, it would hurt him to lose your help in the lab.
Please note that the most appropriate way to handle this would have been to be upfront about your expectations after you were rejected but before you took the position in a volunteer. It would have been totally fine then to ask if there was an opportunity for paid work later, and then you wouldn't be potentially working for free for a few months in a lab that may never pay you.