The original DOS version? Original DOS version? That's no original, that's some johnny-come-lately new-fangled BASIC! Er... I think it is anyway.
Anyway, I've never looked at EnhancedMusicandControl, but likely it's based upon the example OBSE plugin.
Generally you start by downloading Microsofts Visual C++ Express Edition. Or Visual Studios Express Edition (the same thing, but potentially with more languages than C++). The "Express Editions" are free, and mostly the same as the versions that cost money unless you want to compile 64 bit code (which you don't) or you want to use some really annoying features (which I hope you don't).
There are alternatives like gcc/MinGW, but you probably don't use those because all of the OBSE & OBSE plugins stuff has Microsoft project files... in theory it is possible to write OBSE plugins using gcc/MinGW, but it might be more work to figure out the build process.
Anyway, then you should probably load his project file using MSVC. Try double-clicking on the .sln or .vcproj file. Try to confirm that it's building correctly and everything. IIRC the example OBSE plugin may like to do things like copy the resulting dll directly in to your OBSE plugin folder if it can find it, using some sort of environment variable to figure out where Oblivion is. I don't have that environment variable set up, so I always copy the dll over manually from the Release (or Debug) directory to the obse plugins directory.
Typically over on the left of your screen once it's loaded up will solution explorer tab, which will show you what files are included, and you can double-click on a .h or .cpp file to open them up to edit it. They're likely in C++ - OBSE and Oblivion are in C++, and while it's technically possible to write a plugin in other languages (Elys wrote some in some variant of pascal IIRC) it's probably easiest to match languages with them.
Teaching C++ is beyond the scope of this post... say that it's broadly similar to BASIC, but many functions are associated with data structures, and C++ has more complex syntactic sugars available. And it lets you deal with pointers, which most BASIC variants (including QB, which is what I think you were refering to) don't support much. And... well... I could go on, but it wouldn't help much.