Задача была упростить хранение и поиск, а не усложнить. Судя по всему, здесь нужно всё вручную писать, и к тому же - использовать специальный язык разметки.
Это решает проблему живых ссылок. Но это ничего - если сайт недоступен, значит и материал устарел, скорее всего. А вот проблему их количества это не решает.
Код в примере невалидный и даже не будет, наверное, в браузере работать. Внутри table допускается только tbody,thead,tr,colgroup и ещё пару других, может. Я имею ввиду это: form>table>foreach>tr>td>p+input
Лучше всего стилизовать или оставить скролл, как есть. Можно сделать автоматический скролл при наводке на низ меню.
Если без скриптов и без скролла, то можно использовать flexbox. Размер пунктов будет автоматически меняться в зависимости от высоты экрана. Если экран маленький, то будет плохо. Если скомбинировать это с медиа-запросами на высоту экрана, то можно выводить скролл при маленькой высоте.