The biggest difference (indeed in code terms pretty much the only difference) is that a Singleton class does not have a public constructor: you have to go via the class GetInstance method (or similar) in order to create an instance as the outside world is not allowed to use:
MySingletonClass msc = new MySingletonClass();
It must use
MySingletonClass msc = MySingletonClass.GetInstance();
Which ensures that there is only ever one instance of the class.