Lightweight Async handling is the job of Threads (as you said) or Fibers.
Otherwise, you should consider EventMachine which is a very powerful tool.
EDIT: The above URL for Event Machine is dead. Here is their GitHub account, https://github.com/eventmachine/eventmachine . It serves as a good starting point.