You can't do this at the firewall layer (well, you can - but it won't accomplish what you think it will, nor what you want). The second packet (which you desire) is part of the same TCP stream as the first packet (which you don't want), and TCP is a reliable delivery mechanism. That means that the OS knows if a packet in the middle of the stream has gone missing (by virtue of the sequence number in the header of each packet, see eg http://en.wikipedia.org/wiki/Transmission_Control_Protocol#TCP_segment_structure for more information).
If you filter out a packet in the middle of a stream, the kernel will simply keep letting the other end know that a packet's missing, and the other end will keep retransmitting it (which behaviour you are already seeing, note the [TCP Retransmission]
markers above). If you continue to block those retransmissions, the stream will become desynchronised, the connection will be dropped, and nothing in the stream will get processed.
You will have to do this at the application layer.
Edit a comment exchange between the two of us (much of which has since been deleted) has made it clear that the question might not contain all the details it should. I recommend that you close this question - either accept my answer, or delete the whole question - and write a new one where you lay out in considerable detail what exactly happens now, how it happens, and what you want to achieve.
All I can say now, with some confidence, is that you cannot use iptables
to cut out a single packet from the middle of a TCP stream and expect the rest of that stream to be correctly processed by the receiving application.