I'm surprised that you've defined your class this way, without using the prototype for the methods and the this object for state.

I like this pattern for singletons (and I dislike code that uses 'this' with singletons).  I don't actually know anything about the memory or time performance of code like this, but I worry that it is less efficient than code that uses the prototype for methods and properties of the object for state.

If it was me, I'd use this.count, this.groupID and this.htmlNode instead of the accessor methods. And I'd define ThumbnailDateGroup.prototype.addItem() and ThumbnailDateGroup.prototype.removeItem(). I might prefix the thumbnails[] array with an underscore, but more likely, I'd just expose it as this.thumbnails and just not worry too much about encapsulation.

This class is not going to be used by many other apps, so I don't think it is necessary to use strong encapsulation.

Note that it is still possible to have private utility functions that are not exposed in the public API when defining a class. shared/js/mediadb.js is an example of that.