Here is some code you can use for paging of a "MemoryProxy". I extended MemoryProxy to create a new class called BufferedMemoryProxy.

The only difference between this and the MemoryProxy is the section:
Code:
        if (params.limit && params.start != null) {
            result.records = result.records.slice(params.start, params.start + params.limit);
        }
Hope it works for you

Code:
Ext.data.BufferedMemoryProxy = function(data){
    Ext.data.BufferedMemoryProxy.superclass.constructor.call(this);
    this.data = data;
};

Ext.extend(Ext.data.BufferedMemoryProxy, Ext.data.MemoryProxy, {
    
    load : function(params, reader, callback, scope, arg){
        params = params || {};
        var result;
        try {
            result = reader.readRecords(this.data);
        }catch(e){
            this.fireEvent("loadexception", this, arg, null, e);
            callback.call(scope, null, arg, false);
            return;
        }
        
        if (params.limit && params.start != null) {
            result.records = result.records.slice(params.start, params.start + params.limit);
        }
        callback.call(scope, result, arg, true);
    }
});