Почему метод Number() начинается с большой буквы в javascript?
Потому что это не метод, а класс (прототип). Также существуют: String, Boolean, Object, Array. При вызове классов Number, String, Boolean без оператора new они постараются привести переданное значение к примитиву (например String(true) // "true". В том случае, если их вызвать с оператором new, то они вернут новый объект (не путать с Object), значением в котором будет переданное значение. Лучше так не создавать переменные данных классов, а использовать примитивы (об этом можете почитать в книге Стоян Стефанов - JavaScript Шаблоны). У Object особое поведение при его вызове без new - он постарается понять тип переменной и впоследствии вернет экземпляр класса определенного примитива:
Object(100) // Number { 100 }
typeof Object(100) // "object"
typeof 100 // "number"
Object(100) instanceof Number // true
100 instanceof Number // false
Вызов класса Array без ключевого слова new или с ним:
с 1 аргументом - вернет пустой массив,  длиной равной переданному аргументу;
с 2 и более аргументами - вернет массив значений.
по логике ведь метод должен начинатся с маленькой буквы?
Да, но так изначально было написано и уже все сайты завязались на такое написание.

Если у вас есть идея, как это поменять, чтобы ничего не сломалось - вы получите Нобелевскую премию мира.

А вообще: Number - это не только функция, но и тип.