Попробуйте это с помощью:
display: grid;
grid-gap: 16px;
padding: 16px;
grid-template-columns: repeat(auto-fill,minmax(160px,1fr));
grid-auto-flow: column;
grid-auto-columns: minmax(160px,1fr);
overflow-x: auto;
grid-auto-flow: column; заставит сетку добавлять ваши элементы в виде столбца, а не следовать за свободным пространством.
grid-auto-columns: minmax (160px, 1fr); элементы, добавленные вне области просмотра, не соответствуют автоподгонке, поэтому они не получат размер, определенный в вашем шаблоне.Поэтому вам нужно определить его снова с помощью grid-auto-column.
overflow-x: auto; auto добавит полосу прокрутки