Currently blocks are not requested until all headers are received. For example, running a testnet bitcoind now has been running for over 30 minutes and still no blocks have been requested yet (despite 350MB of data having been downloaded for headers from each node).
Not so much an issue as a feature request, but it should be possible to download blocks once some headers have been downloaded (perhaps after checking there's a consensus between more than one connected peer).