How to learn a great number of theorems by heart? Imagine you have ten definitions and you want to learn them by heart. It is easy - definitions are somehow unique. But, imagine 40 (60,100,1000) theorems that all look somehow similar and are all important. How would you learn them by heart? What the word "learn" mean here for you?
Of course, you can learn them by numbers, and everytime I will say "Theorem 147" you will say the right one. But somehow it is not right. We do not call people with their birth date, do we?
If so, how would you categorize the (limited number of) theorems? What would be your approach to learn tens of theorems by heart and still clearly distinguish between them? What makes a theorem unique? Could you draw a graph or a tree of theorems? 

Two things I think are important here:


*

*Mathematics is/has a language. Learn the language by heart and then you will be able to formulate by heart a lot of sentences (i.e. propositions and theorems) without having to memorize almost anything. A lot of theorems that you're supposed to learn by heart are just one idea, once you're able to formulate this idea in the correct mathematical language you're almost done.

*Try to teach the theorems you want to memorize. And try to teach them in the most simple way you can. This will certainly clarify to you what you know and what you missed of the proofs. After one or two complete attempts you should be able to demonstrate the theorem by heart.  
