Question: Is this true that line "I didn't know you could read" was improvised by Tom Felton, who forgot his original line?
Answer: Yes in the same way Daniel Radcliffe improvised his line about always being around when talking to Lucius at the end.
Actually, Jason Isaacs said that, and he and Daniel didn't forget their lines but did it intentionally.
Answer: Yes. It's a common occurrence in a lot of movies for actors to forget their original lines so they improvise something to help move the scene along and not break character. Tom did this because he forgot what his original line was.