Unfortunately, density kills optimization performance. Many of the implementational techniques used in solvers that allow for the efficient solution of large problems specifically exploit sparsity. The solver implementations typically try to have efficient methods for dense situations as well, but there are limits to that.
The only approach I know of that might help sometimes is reformulating the problem. This typically means coming up with an extended formulation, that means a formulation that uses more variables than the original one. This leads to a larger problem but potentially with a tighter bound and a better sparsity pattern, sometimes even one that can be exploited with decomposition.
A classic reformulation approach is to frame the problem in the context of a network, often a time-space-network where the nodes are duplicated for each time period.
I am not familiar with the SCUC problem you mention, but a quick search hints at the fact that MILP solvers are currently used to solve this problem, so maybe a good formulation exists.
Alternatively, if a problem is large and dense and the performance is not satisfactory, solving only parts of the problem iteratively can be a good (heuristic) approach to at least find some solutions for such a problem.