Вам просто нужно добавить отступ, равный размеру полос прокрутки справа и снизу, а затем убрать его при наведении курсора:
section {
height: 10rem;
width: 10rem;
margin: 1rem auto;
border: gray 1px solid;
overflow: hidden;
white-space: nowrap;
}
nav {
border: red 1px dashed;
}
ul {
list-style: none;
margin: 0;
padding: 0 20px 20px 0;
}
section:hover {
overflow: auto;
}
section:hover ul {
padding: 0;
}
<section>
<nav>
<ul>
<li>Scroll to bottom</li>
<li>Scroll to bottom</li>
<li>Scroll to bottom</li>
<li>Scroll to bottom</li>
<li>Scroll to bottom</li>
<li>Scroll to bottom</li>
<li>Scroll to bottom</li>
<li>Scroll to bottom</li>
<li>Scroll to bottom</li>
<li>Scroll to bottom</li>
<li>Scroll to bottom</li>
<li>Scroll to bottom</li>
<li>Scroll to bottom</li>
<li>Scroll to bottom</li>
<li>Scroll to bottom</li>
<li>Scroll to bottom</li>
<li>Mouse in / out</li>
<li>Watch me jump up / down</li>
</ul>
</nav>
</section>