Blender API (2.6), UI list of loaded images
Adding a "real" datablock widget won't quite work and it's not possible (or at least not easy) to have a dynamically populated EnumProperty object. Fortunately, there is the prop_search() UILayout function. You can use that to assign the name of a datablock to a StringProperty variable. So, you should have something along the lines of this for that StringProperty:

bpy.types.Object.textureName = bpy.props.StringProperty(name="Texture")


With that done, all objects now have a new string property called textureName that defaults to an empty string. Now, in your panel, add something akin to the following in the draw() function:

def draw(self, context):
    ob = context.active_object

    layout = self.layout
    layout.prop_search(ob, "textureName", bpy.data, "images")


Of course, this only assigns the name of the texture to that StringProperty variable. You still need to write code that does something with this property.