Стандартным news.list - это не решить
можете написать свой компонент. вот основа:
CModule::IncludeModule("iblock");
$arSelect = [
'ID',
'NAME',
];
$arFilter = [
'IBLOCK_CODE' => 'news',
];
if ($_REQUEST['PAGEN_1'] > 1) {
$arNavStartParams = [
'iNumPage' => $_REQUEST['PAGEN_1'] - 1,
'nPageSize' => 6,
];
$arFilter['!ID'] = [1, 2, 3, 4]; // TODO: получить эти данные в запросе и закешировать
} else {
$arNavStartParams = [
'nTopCount' => 0,
'iNumPage' => 1,
'nPageSize' => 10,
];
}
$obFields = CIBlockElement::GetList(
['ID' => 'asc'],
$arFilter,
false,
$arNavStartParams,
$arSelect
);
$arCurrentData = [];
while($arField = $obFields->Fetch()) {
print_r($arField);
}
Обратите внимание на TODO - это id первых 4-х новостей - их получайте из этого же компонента, показывающего 1-ю страницу
начиная со второй страницы мы делаем, некий, offset, запрещая показывать уже выведенные новости в 1-й четвёрке и сдвигая пагинатор.