All engines should support it. The UV sampling goes from 0-1 in both U and V directions You simply lay it out on a 2:1 space, like from -1 - +1 U and 0-1V then scale all the UV's by half (0.5) on the U axis and put them back into the default 0-1 UV space. IN your program they'll look stretched but they will read a 2:1…
I would just reduce the height of the texture to a 2:1(512x256) ratio, then rotate all the bits that you have standing up right now so they are horizontal and cram it all in there, should fit quit snuggly judging on the scaling you have right now.