The POP3 method of e-mail retrieval is very basic. The basic POP3 system only allows for 1 e-mail to be retrieved at a time.
The client asks the server for a count of how many e-mails it holds. The server relies. The client requests number 1. The server sends number 1. The client requests number 2... Everything has to be done in strict order.
On connections with a very slow ping time, like satellite or analog dial-up and 3G, there are big delays (half a second or more) between when the server sends "end of message 1". The client then says "send message 2". As a result, it might take 0.1 seconds to send a message, but there might be a gap of 1 second between messages. This might make batch retrieval of e-mails quite slow.
To get around this, some extensions to POP3 were added - one of these, called pipelining, allows multiple e-mails to be retrieved at a time. Instead of waiting for the server to finish sending a message, the client simply sends "send message 1, send message 2, send message 3, send message 4...."
The problem is that if the server doesn't support pipelining, then the first message will retrieve as normal, and possibly the 2nd will also get send. However, the server may reject or ignore the request for the later e-mails. When that happens the client will hang, as it sits waiting for the server to send message 3 and message 4, but the server has lost or ignored the requests.
One of the problems with POP3 is that it does not have a reliable method built in, which allows the server to tell the client what is supported. While most servers since about 1996 support pipelining, some older ones might not. For a short time, there were some extensions to POP3 which would allow the client to query the server, but sometimes these were an addon configuration, so it might be possible to make a mistake when convfiguring the server, so that the server says that it supports pipelining, but the actual pipeline support is less than the configured support.