Well, since I'm the author of lNet I'm a bit biased I guess but here goes:
Synapse is a "non-visual" (it doesn't integrate with GUI directly) networking lib which uses blocking sockets and (AFAIK) threads
Indy is a big project with years of development which started on Windows/Delphi and has visual components. Internally it supports both blocking and non-blocking although AFAIK it uses threads as well.
lNet is relatively lightweight, has GUI integration and uses non-blocking sockets (requires a bit of event-driven development thinking). Threading can be done with it (there's an experimental threaded eventer to pool requests and try and get the best of multiple cores etc.)