How to force a sysadmin to store data in schema other than dbo?
The only way for a member of the sysadmin fixed server role to use a non-dbo schema is to explicitly qualify their object names with the schema name:

CREATE TABLE MySchema.TableName (...


instead of:

CREATE TABLE TableName (...


There is no way around this. The documentation for ALTER USER (in the "Remarks" section) even has a note for:


  &#x1F6C8; Important  
  
  The value of DEFAULT_SCHEMA is ignored if the user is a member of the sysadmin fixed server role. All members of the sysadmin fixed server role have a default schema of dbo.


This is most likely due to the fact that Logins (instance-level) that are members of the sysadmin fixed server role become the dbo User (database-level) in all databases. To verify this, log in as any non-sa Login that is a sysadmin and execute the following:

SELECT SYSTEM_USER AS [Login], CURRENT_USER AS [User];