How do I display the index position of a post from a custom post type?

One solution is to add a custom field to the posts. Call it index_position or something similar. Create a nice meta_box if you want the client to be happy.

Then, when you query for posts in your template, ask for posts sorted by your custom field in a meta_query:

$song_query = new WP_Query(
    array(
        'post_type' => 'songs',
        'orderby' => 'meta_value_num',
        'order' => 'ASC',
        'meta_key' => 'index_position',
    )
);