Без ajax можно так
$this->load->model('catalog/product');
$this->load->model('catalog/category');
/* 0 = Выбрать все родительские категории */
$categories = $this->model_catalog_category->getCategories( 0 );
foreach ($categories as $category) {
$filter = [
'filter_category_id' => $category['category_id'],
'filter_sub_category' => true, //Включать в выборку товары из дочерних категорий
'start' => 1,
'limit' => 4 //Количество товаров
];
$products = $this->model_catalog_product->getProducts($filter);
$data['category_tabs'][] = [
'category_id' => $category['category_id'],
'name' => $category['name'],
'products' => $products
];
}