You can always use a dual switching MOSFET, like Diodes Inc
DMG6898LSD. At Vgs=2.5V and Id=8.9A, Rds<=23mohm. Since Rds is PTC at smaller currents the max channel resistance will be lower and Vds lower as well; fig1 in the datasheet suggests Vds<<100mV @ Id<1A currents. The drawback of the DMG6898LSD is the rather large 50mil SO package, but you could probably fit 3 of these within the real estate of one ULN2003, and get other benefits like placement closer to the relays and more distributed heat dissipation if you need significant switching currents. If you switch using GPIO pins on a µC this combined with pin swapping can simplify layout.
Or maybe a quad/hex/octal common-source variety - if you can find one with high channel on-conductance (~>25S). If you do, let me know! With independent S pins you can use a source resistor to set the driving current and reduce noise and glitch sensitivity (always a good habit when dealing with relays, even with flywheel diodes), but may not need this if the coil supply voltage is a good match for the relay.
There are also low-Vce(sat) BJTs, but I'm only aware of discrete devices, not any sort of array, but this may be your best bet if you need TH. You could easily make a small adapter board with a few of these that is pin compatible with a ULN2003. (But if you do this you might as well use modern SMD parts IMO.)