Como outros já mencionaram, o protocolo HTTP atual fornece suporte limitado para isso.
Há o esquema DATA URI que permite codificar objetos binários como imagens em base64 e embutidos, combinando efetivamente o HTML e o objeto em um arquivo. Isso reduz a capacidade de cache, mas ainda pode valer a pena para pequenos objetos, reduzindo o número de conexões de curta duração e reduzindo a transferência de cabeçalhos não compactados. A extensão do Apache mod_pagespeed do Google realiza este truque, entre outros, automaticamente para objetos de 2k ou menos. Consulte o link
HTTP Pipelining / keepalives são úteis, mas, como Koos van den Hout menciona, só funcionam em objetos com tamanho conhecido. Além disso, o pipelining e a compactação gzip não fazem nada sobre a transferência não compactada de cabeçalhos e cookies.
Um desenvolvimento interessante é o projeto de pesquisa do Google chamado SPDY , que faz quase o que você sugere. Entre outros, ele intercala várias solicitações HTTP em uma única conexão TCP, intercalando e priorizando os recursos. Também comprime todo o fluxo, incluindo cabeçalhos e cookies. Testes mostraram cerca de 50% de redução nos tempos de carregamento de página, então eu definitivamente ficaria de olho neste projeto.
O navegador Google Chrome já está usando o protocolo SPDY ao se comunicar com sites do Google, como Gmail e Pesquisa. Você pode encontrar alguns diagnósticos internos digitando about: net-internals na barra de localização.