The simplest CSS method is to use a position:absolute
container inside the right column.
<div class="container-fluid">
<div class="row my-5 mx-auto border" style="max-width: 950px;">
<div class="col-auto p-0" style="max-width: 600px;">
<img class="image" src="..." style="width: 100%;">
</div>
<div class="col px-0 overflow-auto" style="width: 348px; background: #e3e3e3;">
<div class="position-absolute px-2 w-100">
<div class="row" style="height: 80px; background: red;">
<div class="col">
<p>Top</p>
</div>
</div>
<div class="row comments" style="overflow-y: auto;">
<div class="col">
<div class="row m-0">
Comments
</div>
<div class="row m-0">
Comments
</div>
<div class="row m-0">
Comments
</div>
<div class="row m-0">
Comments
</div>
<div class="row m-0">
Comments
</div>
<div class="row m-0">
Comments
</div>
<div class="row m-0">
Comments
</div>
<div class="row m-0">
Comments
</div>
<div class="row m-0">
Comments
</div>
<div class="row m-0">
Comments
</div>
<div class="row m-0">
Comments
</div>
<div class="row m-0">
Comments
</div>
<div class="row m-0">
Comments
</div>
<div class="row m-0">
Comments
</div>
</div>
</div>
<div class="row" style="height: 80px; background: red;">
<div class="col">
<p>Bottom</p>
</div>
</div>
</div>
</div>
</div>
</div>
https://www.codeply.com/go/j4qHjRasDH
If you want just the comments section scrollable use flexbox on the absolute container: https://www.codeply.com/go/eMxTl1mB12
Also note, the "top" and "bottom" content shouldn't be placed directly in the .row
. Rows should only contain columns, and the content should be placed inside the columns.
Related: Bootstrap 4 Vertical Align Between 2 Divs - Flex