How to create many properties at the same time using list/arrays
Use the python built in method setattr


  The function assigns the value to the attribute, provided the object allows it. For example, setattr(x, 'foobar', 123) is equivalent to x.foobar = 123.


import bpy
from bpy.props import IntProperty
from bpy.types import Scene

prop_name = ["prop%d" % (i+1) for i in range(10)]

for i, name in enumerate(prop_name):
    setattr(Scene, name, IntProperty(name="prop %d" % (i+1)))


On your code, you are setting the name property of Scene class ten times to an IntProperty.

for i, name in enumerate(prop_name):
    bpy.types.Scene.name = bpy.props.IntProperty(name="prop %d"%(i+1))


is equivalent to

bpy.types.Scene.name = IntProperty(name="prop 1")
bpy.types.Scene.name = IntProperty(name="prop 2")
...
bpy.types.Scene.name = IntProperty(name="prop 10")


This is a double whammy, as Scene already has a StringProperty name.  (eg bpy.data.scenes["NAME"] has "NAME" for a name)  The ID class is a base class for all blender objects in the subclass list. Another clue this is BAD is the blank scene name in UI after running question code.  Click on scene name and it will most likely crash blender.