I recommend simply generating a file which is a record of all resources for your game to load. I have stopped relying on the XNA Content Project template as it requires you to be very deliberate about every resource you add, which is less conducive to rapid prototyping for game development.
When your editor starts, it reads the file (with paths to each resource you will need), and appends to this file every time you open a new texture (from your dialog), then loads that texture. In this way, the next time your project runs, your game will automatically load every resource that has been added. How you manage excessively large resource caches and exactly when it loads and unloads is up to you, but I have experienced this is much more effective.
If you are concerned about packaging, you can also set up some simple compression to box up your textures and sounds.
//This will just load all textures from a folder,
// and works well enough if you want to keep your game open/moddable.
foreach (string str in Directory.GetFiles("resource\\texture\\","*.png", SearchOption.AllDirectories))
{
int lastSlash = str.LastIndexOf('\\');
string textureName = ((lastSlash > -1) ? str.Substring(lastSlash + 1) : str).Replace(".png","");
Util.Log(LogManager.LogLevel.Debug, "Loading texture: " + str);
textures[textureName]= Texture2D.FromStream(context.GraphicsDevice, (Stream)File.OpenRead(str));
}