Eu não tenho realmente 'resposta' sobre isso, mas talvez uma maneira de rastreá-lo um pouco mais. O problema parece acontecer no espaço do kernel, logo após o encadeamento do iptables ou no espaço do usuário, quando ou antes do apache aceitar a conexão.
O kernel pode soltar pacotes em si APÓS o nic e o iptables, devido à carga que o pacote captura custos. Você já construiu um ambiente de teste sem o iptables e um número definido de acessos que podem ser contados no log do apache?
Se você tiver alguma experiência em C, você deve experimentar a libpcap, que é uma biblioteca maravilhosa para fazer coisas boas e ruins. Aqui está um bom artigo de como começar: link
Isso pode mostrar diferenças nos pacotes que estão passando e os que serão descartados.