Cotton's 'softness' is prescribed by which cotton they use to it weave from. The only way to soften up 'tough-as-old-boots/scratchy-as-nails' cotton is to thrash it until it loses a lot of its original fibre content.
This way, it will become just about 'perfect' just before it falls through to holes ;)
You will find a myriad DIY methods to soften up 'hard' cotton. Most of them are truly useless. Bicarb, vinegar, bicarb and vinegar [try to figure out the logic of that one], salt, home-made fabric softeners with hair conditioner…
Once it's been through the first few machine washes, any structural component provided by starch & dye residue will no longer be a factor - what you're left with is cheap, stiff cotton.
The only way to deal with that is mechanical abrasion.
You could stonewash… but that's really not good on your washing machine. Maybe you could use a cement mixer & a shovel-full of hardcore if you happen to work in the building trade.
I think your only real domestic option is 'dryer balls' [the 'free' alternative to which is a pair of clean trainers].
![enter image description here](https://cdn.statically.io/img/i.sstatic.net/ndVdU.png)
which will [slightly] increase the abrasion during drying. They do provide a little loft to fabrics, but they won't really soften a hard cotton in a couple of washes.