Every teacher I know has had to put up with this same sort of situation. It is so frustrating, but over the years I finally decided that there were always going to be those that don't get their work done. All we can do is keep trying.
You'll find this in any organization. Think about the groups to which you belong. Does every one contribute? Do all members attend every meeting? Do all of them take on the responsibilities of committees of which they are a part? I'm guessing the answer is "no."
When I was teaching I was on numerous committees. It was always the same teachers who gave of their precious time to be on these committees. Most teachers were not on any at all. And many of those that were on the committees attended only a few of the meetings and did very little work. It usually came down to about four or five who did it all.
I belong to a local astronomy club. It's the same there. The club has about 40 members, but about seven or eight do all the work.
There is one group, however, where every person contributes. It's a teachers' society of about 60 members. At the beginning of every year, each member is assigned a committee and a job. As it turns out, this works pretty well. Everyone feels a responsibility to the group and knows that if the job isn't done, everyone else will know who the slacker is.
Perhaps this is a possible solution for this teacher and others who have trouble getting their students to do necessary work. By assigning jobs to each student, perhaps they would feel a responsibility to the group and do their work. It may not help all students, but it certainly is something to try.