How to automatically position designators in Altium?
There's no way of doing this in Altium without writing a custom script. We've run into the same problem with placing designators on the Assembly layer so that they are all properly oriented.

The problem with your "After" photo is that it is not immediately clear which label corresponds to which component. It is far, far better to have the designators maintain the same spacing as the components. So if your components are placed 0.100" on center between each other, then your designators are also 0.100" on center. Your CM will thank you when they need to troubleshoot boards. I also recommend that you tent your vias, and use SMT test points on the critical nets to enable testing.