I'm surprised no one has talked about the underlying technology. Most newer, larger flash drives use multi-level cell (MLC) flash technology, while older drives use single-level cell (SLC). Small-file performance is much, much better with SLC-based disks.
MLC flash drives are much more dense, and drive firmwares deal with the density by using very large blocks for storing data (not the typical 512-sector blocks that a conventional spindle disk would use). The block size may range from 32 KiB all the way up to 1 MiB. This architecture kills small-file write performance.
SLC flash drives, in short, don't have this problem. Unfortunately SLC drives are more expensive, and also much less dense (typically less than 4 GB).
There are a lot of filesystem optimizations you can do to optimize for MLC's large block sizes, but it is a lot of work since typically you don't know the block size the flash disk is using (they always reports 512-byte sectors, for compatibility reasons). I don't know about Windows, but with Linux there is a lot of tuning you can do optimize writes with ext4 (stride and stride-width) and XFS (su and sw). Generally finding the best parameters is completely empirical—you need to experiment till you find what works best.
I'm not sure whether you can still find SLC-based flash drives on the market (MLC is much cheaper), but a Corsair Flash Voyager 4 GB that I bought in 2007 I believe is SLC instead of MLC, and the small-file performance is superb with it (check benchmarks of it at the time).