Are you sure the problem is with LWIP and not the web code doing the periodic call?
I had a web server which did a timeout call to update data from the embedded server every second. However when the server took more than a second to respond (bad wifi link, slow network, etc) then it would trigger a second request before the first was done. This resulted in eventually using all the LWIP buffers. I had to change the _javascript_ code such that it only made another request one second after the first was received. This simple change fixed the bug...
A good way to debug a website is to use developer tools in chrome. They will allow you to see when requests are made, how many are waiting, etc. Also you can throttle the web pages for different network speeds and see what happens. This was very powerful for figuring out my problems.
Trampas