The sphere/cube thing can be done by defining the two models, sphere and cube. Make the cube have tons more vert's, probably through tesselation, then just crossfade the vertex coords.
As far as what you'd really need for a demo, Benny covered it very well. I'll just be a bit more specific:
1. Main engine. This includes which graphics API you'll be using, along with a scene manager and timer system. These are used to run certain scenes between certain time intervals and can also pass a timing value to the scene function (0 = start of scene, 1 = end of scene). This may also include API wrapper functions, texture/model loaders, etc. The simpler the better, but make sure you have everything you need to code comfortably...but essentially, all you're doing with this is setting up a window and calling your audio & effect functions.
2. Music generation/playback. There are tons of lib's lying around for this, like FMod[Ex], BASS, MiniFMOD, V2, or go the hard route and write your own synth (which you're pretty much forced to do for anything 4k and under, due to the low quality of most released synths). For demos, though, at least starting out, stick to playing a .mp3, .ogg, .xm, or other easy-to-load resource.
3. Effects. These will probably be more simple as you start out, but eventually will become huge layered masses of code! You can do anything here, but just make sure they are easy to implement into your timer code. Youth Uprising's demo engine calls each effect function with the 0-1 timer as mentioned above, which makes effects very easy to do as functions of time and also this keeps the demo looking consistent from machine to machine, no matter how fast/slow.
4. Demoscene nuances. I personally feel you can't start making demos without first starting to code oldschool effects

Scrollers, logo wavers, starfields, keftales, rotozoomers - tons of them. But if you really don't wanna reinvent the wheel, and you just wanna jump into newschool coding, that's cool too. Just always try to include things like greetings - who do you like? Who's helped you along the way? Name them! Try to fit the greets into your demo/intro, but if you can't, include them in the readme for sure.
And along with Clyde, we wanna see your progress!!!
Hope this helps
