Although a lesser used feature, you can specify the name of an element as an embedded expression, rather than a literal. Also, you will need to change to the method syntax to get the overload of Select
that gives you the item index along with the item.
Dim myXML = <parent>
<%= children.Select(
Function(c, i)
Return <<%= "child_" & (i + 1).ToString() %>>
<%= c %>
</>
End Function) %>
</parent>