нужно ли системному программисту знание Ассемблера?
Нужно.
Системный программист, как ни странно, пишет системные программы :) То есть, компоненты ОС, ядро, дрова, различные программы, работающие с железом. Поэтому ему важно знать, как работает процессор, и как можно например оптимизировать код в критическом участке, где важна скорость выполнения.
И хотя на самом асме писать приходится редко - только самые критичные участки - читать листинги и дампы, уметь разобраться, что там написано, знать, что все это означает - обязательно.
много ли кода пишут в системном программировании
Озвездительно много. Ядро линуха - это типичный пример системной программы :)