nimos100 has the right idea. I'm writing a shooter and doing it exactly as he mentioned. I keep ONE frame for ALL my levels and change my levels with global variables, this way I can use the code to tell it how to progress the level instead of setting up sprites all over the board.
I'm writing each enemy it's own routines, and when in the level code I tell it to turn a switch on to activate whichever enemy, and give it the speed and other variables necessary, and have it spawn outside the frame on the right side of the screen (or top or bottom or left however you do it or however the enemies attack). Once it's in frame, I tell the enemy sprite to switch it's "on screen" variable (call it what you like) to let it know it's on the screen, so when it flies off the other end it can be destroyed (if the player didn't destroy it while it was in the play field).
The point is the play field stays still, and the SPRITES move to give the illusion of "flying through space". That video you posted was for a platformer game, which is COMPLETELY different because everything DOES need to be in the proper place for world exploration. But space games are different in that they are much easier to set up.
If you're going to have your level planned out, do so on paper, and use the event editor to tell it at what TIME the things should spawn. Use a global variable that counts the timer up. I suggest 2 to 4 minutes per area, and spread your enemies out through there (at 10, spawn this many of this enemy) etc. After the total area (say level 1-1) is over, reset the timer, switch the area/level to the next one on the list, repeat the process but now for 1-2, changing the times and enemies and what not. You can also use timers in this way to spawn on a higher layer maybe a sprite of the inside of a ship that you end up flying through, so it's not just for spawning enemies, you see.
Don't think too hard about it or you will burn yourself out. If you need help, just PM me and I'll do what I can.