Nucleo STM32L476 and Arduino TFT shield pin mapping
You are correct in your analysis, that it is an inkonvenient layout for a parallel bus.

Another version of your pinout graphic:


Taken from the reference manual.

Sadly, there is no way to remap internal pins to external pins. The STM32 is very restrictive in that regard (also in regard to alternate functions of the pins).



EDIT: Scrap this part for the GPIO:

The only thing which comes to my mind (without changing the hardware) which might speed up your process is the memory mapped bit banding access to single bits of the corresponding register by a single write to a word address.

To see this in more detail have a look at the reference manual of the L476 section 2.3 about bit banding.

I haven't used it so far, so I can't comment on the usefulness of it. But getting the right word addresses for each of the needed pin bits in the ODR register might speed up the work.



Reason why to scrap the idea with bit banding:

Looking further into the bit banding in the L476, the programming manual reveals that only the region from 0x40000000 to 0x400FFFFF is accessible. The GPIO registers start at 0x48000000 so they are outside of the bit banding region.



So the only option to really simplify your software is to wire the board differently.