IMHO multiplexing on top of TCP just shifts the blame, but I'm sceptical that it's a really optiomal solution.
Let a protocol that's designed to do so (SCTP) fix the streaming and multiplexing shortcomings of TCP, and let's fix the HTTP problems (like non-compressed chatty headers) in HTTP. Two separate problems. Don't conflate them into one "solution".
YES you'd need to substantially rewrite your server (and, though probably to a much lesser extent, client) if you want them to understand SCTP. So what? You'll have to do the exact same thing if you want to multiplex over HTTP. In fact, with SCTP the kernel does the multiplexing for you, so modifying Apache (or any other Web server) to use separate SCTP streams may well be _easier_ than to teach it to multiplex multiple contents over one TCP stream, which needs to be done in user space.