I was looking for the same thing, but found nothing. So I decided to make it myself. I'm not exactly an expert at PHP, and I haven't had the opportunity to test my modification extensively (other than on my own server setup), but hey it works for me.
If that doesn't scare you off, this is what I ended up with: http://ohok.nl/stuff/profile.txt (or do you like pretty colours?)
Basically what it does is resize any image that's wider and/or higher than allowed, to whatever's set to be the maximum, maintaining the original aspect ratio. Since resizing the image also changes the file size, I had to move the file size check until after the resizing is done, and also comment out the MAX_FILE_SIZE hidden form field, as big files can be made smaller now.
It's also supposed to scale down gracefully if the GD library isn't installed, or if the image format isn't supported by it. In either case the script should return to the default PunBB behaviour and simply reject the image if it's too large. The only difference is the absence of the MAX_FILE_SIZE hidden form field (not that I personally mind, since the output PHP gives me when using it is a meaningless blob of code anyway). But this doesn't really affect anything, since the file size is double checked by the script anyway.
I'd turn this into a nicely distributed 'mod' or 'plugin' but I have no idea how, sorry. Hope this will be of help to someone anyway.
P.S. My modifications start at around line 350 and end with the now commented out MAX_FILE_SIZE hidden form field, which is now at line 463. I tried to play nice and comment my code, but if you have any questions feel free to ask.
EDIT: This was turned into a proper mod some time ago. Please refer to http://punbb.org/forums/viewtopic.php?id=16883 rather than following the instructions in this post.