How to store variable and use it as property in panel?
Using both a pointer, property group setup. The tile width,   scene.iso_render.tile_width, is passed to the operator.  You could bypass defining and using the operator property entirely and just use context.scene.iso_render.tile_width (and other settings) directly in the operator.

import bpy
from bpy.props import IntProperty, PointerProperty
from bpy.types import PropertyGroup, Operator, Panel
from bpy.utils import register_class, unregister_class

bl_info = { 
    "name":     "Render ISO", 
    "category": "Render"  # perhaps wrong
}

class RenderIsoOperator(Operator):
    ''' An example operator for addon '''
    bl_idname = "render.render_iso"
    bl_label  = "Render ISO"
    bl_options = {'REGISTER'}

    tile_width = IntProperty(
        name="Tile width",
        min=0,
        max=1000
    )

    def execute(self, context):
        obj = context.scene.objects.active
        # Do the rendering here
        return {"FINISHED"}


class RenderIsoPanel(Panel):
    bl_idname = "RENDER_PT_render_iso"
    bl_label = "Render ISO"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "render"
    bl_options = {'DEFAULT_CLOSED'}

    def draw(self, context):
        scene = context.scene
        layout = self.layout
        op = layout.operator(RenderIsoOperator.bl_idname)
        op.tile_width = scene.iso_render.tile_width
        layout.prop(scene.iso_render, "tile_width")

class IsoRenderSettings(PropertyGroup):
    tile_width = IntProperty(
        name="Tile width",
        min=0,
        max=1000
    )
def register():
    register_class(IsoRenderSettings)

    bpy.types.Scene.iso_render = PointerProperty(type=IsoRenderSettings)
    register_class(RenderIsoOperator)
    register_class(RenderIsoPanel)

def unregister():
    unregister_class(IsoRenderSettings)
    unregister_class(RenderIsoOperator)
    unregister_class(RenderIsoPanel)
    del(bpy.types.Scene.iso_render)

if __name__ == "__main__":
    register()