Generally speaking, there is no need to create multiple physical copies of the same package.
It is possible to call the same single package in parallel.
So your first method will work.
Additionally, you can use SSIS For Loop Container, its counter <=10.
Inside of it Execute Package Task, with ExecuteOutOfProcess setting as True or False.
ExecuteOutOfProcess: Specifies whether you want your child package to run in the same process (with the parent package) or the separate process.