What is shared between two instances on the same server? We want to install multiple instances of SQL Server on a single Windows server.  We cannot use VMs because the server is bare metal Windows 2008 R2.

For security purposes we need to ensure that the two instances share nothing, including management, Windows services, accounts, etc.  So I guess the question is:

When installing more than one "instance" of SQL Server on a Windows server, what is shared?
SQL Server instances have separate sets of binaries for each installation.  For the base engine, you will have separate SQL Server and SQL agent services that can run under separate accounts.  They each have their own configurations and users.  This is also true for other components like Analysis Services and Reporting Services if you install them.

There are shared components, including Management Studio, Integration Services, and the SQL Browser service.  You can find a full listing of shared components here.

Note, you will have several considerations to make when maintaining different instances:


SQL Version consistency (each instance can be of a different SQL version)
Memory Settings - Each instance will maintain a memory pool separate from the other instances.  You will want to plan out your Max Memory settings for each instance so that the different instances won't compete with each other.
Possible CPU contention - All instances will make use of the same CPU cores.  You can manage the processor affinity mask if you want to reserve threads for different instances, but I haven't had much of a need for that.


Overall, you'll need to keep in mind that all your instances will be competing for resources on the same server, so balance those resources accordingly.