A download requires only one active TCP state, which entails receiving large blocks of data from the server side and sending brief receipt confirmations from the client side. The server side will wait until the client side has confirmed that the data has been received before sending more. Therefore, some disproportionately small uplink bandwidth is required even to download. With one single connection, the uplink requirements are fairly relaxed and not much upstream is needed, so one can get as close as possible to the theoretical download bandwidth limitations. With multiple simultaneous downloads however, the uplink can quickly become a limiting factor since the server side ends up waiting before sending more data.
The problem here is likely multiple simultaneous connections. Many websites utilize keepalives, meaning that a client can make multiple simultaneous requests for related elements, e.g. get html, a stylesheet, and some images in one go. This is desirable because it handles TCP connections efficiently and also causes the page to load all at once instead of progressively. With dialup however, the available bandwidth is easily bottlenecked by a single connection, let alone multiple simultaneous connections. Your friend should consider turning off keepalives and pipelining support in his browser, or if he has the cash to spend, maybe even load-balance two dialup connections or invest in ISDN (slow and pricey, but still better than dialup). The modern internet is just too much to ask of a single dialup connection.