From Microsoft's forums (by Stephen Styrchak): "If you really want to share an Xbox 360 game without sharing the source, you can do it pretty easily. Just build your game into a DLL instead of an EXE (Game Library project). Then share a project with the source for the program entrypoint (main) that references your compiled assembly.
Basically, the project you have to share is the default Xbox 360 Game project with the Game1.cs file removed. The Game1 class should be defined in a separate DLL, which you can build from an Xbox 360 Game Library project. That way, the code in Program.cs will instantiate and invoke your game, which is implemented in another assembly.
You can develop the game using a multi-project solution and a project-to-project reference. But when it comes time to share it, just create a new Xbox 360 Game project and reference the already-compiled Game Library that holds all your game logic. Share that project (which is just a stub and contains no game logic), your compiled game assembly, and all the compiled assets.
This way, anyone with XNA Game Studio Express can use your shared project to build and deploy your game, without actually having the source for your game.
Although many people will encourage you to share your source as well, there are ways to show off your games and your creativity without giving everything away if you really, really don't want to.
Simpler methods are on the way. Just be patient.
Some tip! But wait, if you can read between lines you may notice that something is cooking -even though no time frame has been revealed.
Please, tell me that an update pack for XNA is almost there ...
"... Just be patient ..."