Have you tried giving each mp3 a different mci alias? Eg.
Code:
[DllImport("winmm.dll")]
private static extern Int32 mciSendString(String command, StringBuilder buffer,
Int32 bufferSize, IntPtr hwndCallback);
private void PlayTwoSongs()
{
String path = "c:\\some_song.mp3";
mciSendString("open \"" + path + "\" type mpegvideo alias songA", null, 0, IntPtr.Zero);
mciSendString("play songA", null, 0, IntPtr.Zero);
path = "c:\\another_song.mp3";
mciSendString("open \"" + path + "\" type mpegvideo alias songB", null, 0, IntPtr.Zero);
mciSendString("play songB", null, 0, IntPtr.Zero);
}
Not tested this but I did something similar once to allow simultaneous recording and playback.