How to create some GIN index concurrently in Postgresql
To follow up on my comment, PostgreSQL absolutely can build gin indexes on different tables in parallel to each other.  If you don't see a benefit, it is because you don't have enough of some resource.  Probably random disk IO capacity, as building large gin indexes can be quite intensive on this.

If using a different table space didn't speed it up, then perhaps the IO bottleneck is in the kernel or FS code, such that it fails to take full advantage of the underlying hardware.  One way to more-definitively determine the bottleneck would be to run two separate PostgreSQL servers on the same machine (listening to different ports) and then put one table in each database server, and try to create the indexes simultaneously on that set up.