Вы делаете обычный grid. Вопрос с отступами между элементами уже давно решен, не надо изобретать велосипеды.
blog.codeply.com/2016/04/06/how-the-bootstrap-grid...
TL;DR:
Выбираете размер отступа, например $spacer: 30px.
Даете row отрицательный margin left/right в половину этой величины.
Даете col положительный padding left/right в половину этой величины.
// EDIT
Вот пример.
<div class="row">
<div class="col">content</div>
<div class="col">content</div>
<div class="col">content</div>
<div class="col">content</div>
<div class="col">content</div>
<div class="col">content</div>
<div class="col">content</div>
<div class="col">content</div>
<div class="col">content</div>
<!-- хоть миллион вставьте их -->
</div>
.row {
display: flex;
flex-wrap: wrap;
margin-left: -15px;
margin-right: -15px;
}
.col {
padding-left: 15px;
padding-right: 15px;
margin-bottom: 30px;
}