The first thing to realize is that milk is actually made up of a lot of different components, the main ones being protein, fat, and water. When it comes to curdling, we're mainly concerned with one specific milk protein called casein.
Normally, little groupings of casein float around in the milk without bonding to anything. These groupings (technically called micelles) have a negative charge, which makes them repel other groupings of casein and keeps the casein evenly dispersed in the milk.
When milk becomes too acidic, like when we add lemon juice or when it goes sour, the negative charge on the casein groupings becomes neutralized. Now instead of pushing each other apart, the casein starts to clump together. Eventually large enough clumps are formed that we can actually see the separation, and then we have curdled milk.
This process happens so slowly at cold or room temperatures that you can usually get away with adding lemon juice without the milk curdling - this is how we can make lemon-flavored ice cream. On the other hand, if you add lemon juice or other acid to hot milk, the curdling happens much faster. You can see this if you make ricotta or soft paneer cheese at home!
Whew! We hope that makes sense! Any questions or clarifications to add?
(We consulted On Food and Cooking by Harold McGee for this post.)
(Image: Emma Christensen for the Kitchn)