Можно обратиться по индексу:
Array.prototype.length; //0
Array.prototype[0]; //undefined, но не ошибка!
Array.prototype[0]=123;
Array.prototype[0]; //Теперь 123
Array.prototype.length; //Теперь 1 (автоматически)
Возможно, вы думали, что массивы не могут содержать свойств? Но массивы - объекты, так что могут:
typeof Array.prototype; //"object"
var a = [];
typeof a; //"object";
a.x = 123;
a.x; //123
a.length; //0
Кстати, мысль о том, что Array.prototype это массив, довольно спорная, не смотря на документацию. Смотря как проверять:
[] instanceof Array; //true
Array.prototype instanceof Array; //false
Чтобы сказать, как создать такой массив, чтобы он не был массивом, вы должны уточнить, зачем вам это нужно, то есть в чем заключается проблема. Например, если вам нужно обмануть какой-то чужой код, то желательно привести хотя бы пример, как осуществляется проверка на массив в том чужом коде. И какая выгода от обмана. Ведь можно найти другое решение.
А в общем случае ответить нельзя, потому что массив или не массив это просто термин. Например, если вам достаточно, чтобы массив содержал лишь метод forEach, то некоторые якобы массивы вам тоже вполне сгодятся:
document.querySelectorAll('div').forEach; //function - подходит
document.getElementsByTagName('div').forEach; //undefined - не подходит
То есть копать можно долго в эту тему. Но надо понимать, зачем.