Generics for reducing redundancies
Presumably you could pull those sections out into a generic method. 

private ArrayBufferObject CreateArrayBuffer&lt;T&gt;(ColladaArray colladaArray)
{
     uint cursorOffset = Offset;

     ArrayBufferObject&lt;T&gt; arrayBufferObject = new ArrayBufferObject&lt;T&gt;(BufferObject.Hint.StaticCpuDraw);

     for (uint i = 0; i &lt; Count; i++)
     {
         foreach (ColladaParam param in Params)
         {
             if (param.Name != null)
                 arrayBufferObject[cursorOffset - Offset] = (T)Convert.ChangeType(colladaArray[cursorOffset], typeof(T));
             cursorOffset++;
         }
         cursorOffset += Stride - (uint)Params.Count;
     }

     return arrayBufferObject;
}


And then replace those sections with a call to that method.

if (simpleParamsType == ArrayTypeFloat)
    return CreateArrayBuffer&lt;float&gt;(colladaArray);
else if (simpleParamsType == ArrayTypeInt)
    return CreateArrayBuffer&lt;int&gt;(colladaArray);
else
    throw new NotSupportedException(String.Format("simple accessor params type {0} not supported", simpleParamsType));


Depending on the types that you're converting to and from, the call to Convert.ChangeType() may have to be changed to something else, but it should be sufficient for the standard numeric types. For more information on type conversion, see this.