I've created a JSFiddle to show a sample of how this can be achieved: http://jsfiddle.net/bxfXd/3509/
Markup:
<div class="outer" data-bind="foreach:itemsGrouped">
    <div class="inner">
        <!-- ko foreach: $data -->
            <div class="main" data-bind="text:$data"></div>
        <!-- /ko -->
    <div>
</div>
JS:
Array.prototype.chunk = function (chunkSize) {
    var array = this;
    return [].concat.apply([],
    array.map(function (elem, i) {
        return i % chunkSize ? [] : [array.slice(i, i + chunkSize)];
    }));
}
var SimpleListModel = function(items) {
    var self = this;
    self.items = ko.observableArray(items); 
    self.itemsGrouped = ko.computed(function () {
        return self.items().chunk(3);
    });
};
ko.applyBindings(new SimpleListModel(
                            ["One", "Two", "Three", "Four", "Five", "Six"]));
For reference, the chunk method was taken from here, posted by @ninjagecko