Тут всё просто. Перегоняем массив в создаваемый функцией объект, а в плагинах работаем с ним как с обычным массивом:
function $(...) {
	return new $.init(...);
}
$.init = function (...) {
	var I = 0;
	for (...)
		this[I++] = ...
	this.length = I;
};
$.prototype.plugin = function () {
	for (var i = 0; i < this.length; i++) ...
};