To the OP, I think that your idea of donating the books to the class is brilliant. I am speculating here - maybe the teacher needs to keep a score on how many books were read by each kid and your DS reading a book outside of her database which she uses to keep track might have disrupted her methods as well as made your DS "fall behind" in the number of "approved" books he has read. By donating the books, you enabled her to enter those titles into the tracking system she has so that she can now allow your DS to read them! (the rule sounds moronic when I typed it up, but it seems that these rules and procedures are very important in PS).
I feel for your kid.
Good for you that you are able to think outside the box for them! I am sure that you can buy stacks of used books and donate them to the classroom.
Another thought - as an "accomodation", my son's ex-school allowed him to read a book of his choice during "free play" time - the time between finishing their work and the start of the next activity. Would your son's teacher accept this suggestion?