Okay, let’s try leaving SSC out of the mix for a moment.
In the “shared” model, all database developers write their code against the same database. Hopefully they connect to this database with their own dedicated login (whether Windows or SQL Server) rather than some global dev user account. There is a single dev database and everyone develops in that.
In the "dedicated" model, each developer makes their changes against their own dedicated database. This could be multiple databases on the same SQL Server instance: PubsTom, PubsDick, PubsHarry etc but it is more likely to be set up so that each developer has their own dedicated SQL Server instance. This might be a VM or named instance on a shared physical server or SQL Server Developer edition (or even SQL Express) installed on each developer’s desktop.
User is what you think it is – a Windows or SQL Server login.
“Sandbox” is just a term used to describe a dedicated development environment where a developer can “play” without impacting on anyone else. It is a physical thing and you can only have a sandbox if operating the “dedicated” model as a shared database cannot, by definition, be a sandbox - unless everyone else has gone home for the night maybe
So the question in SQL Source Control when you bring a database under source control relates to whether all your database developers work in one shared database or whether they each develop in their own dedicated database. As far as I know, it is not possible to combine both approaches in SSC.
I am not sure how SSC would work if all your developers use a single global user account like “sa” to develop.