Dear Karl,
As far as I know, STRUCTURE cannot be multi-threaded, so it does bottleneck like this.
I suspect you are using some sort of reduced representation sequencing approach like RAD-seq. Or perhaps you have whole-genome data and you picked out the SNPs bioinformatically.
I have done analyses like this using STRUCTURE, although with closer to 20 individuals rather than 300. I think I had something like 50,000 SNPs as well. As I recall it took weeks to run but it did get there. I'm not sure how much faster it would run on a better computer, although I presume having a lot of RAM would help prevent RAM-limiting problems. But the number cores wouldn't matter I don't think.
One thing you could do for RAD-seq data is thin your SNPs down to one SNP per RAD-seq fragment. This is probably a good thing anyway, so that your markers are more unlinked and more independent of one another. I tried this, and it reduced the number of markers from 50,000 down to something like 300 or 1,000. I found that STRUCTURE still took a very long time to run, but I would have to expect it reduces the run time.
I hope this helps.
Best,