I am expecting to keep my newly created dataset ahead of SYS1.LINKLIB under PROGxx(LNKLST).
You may be expecting this, but IBM tells you that this cannot be done in section 75.4 of the 1.13 MVS Initialization and Tuning Reference
A LNKLST set consists of an ordered list of data sets for processing as the LNKLST concatenation. Every LNKLST set contains the LINKLIB, MIGLIB, CSSLIB, LINKLIBE, and MIGLIBE data sets as the first data sets in the LNKLST concatenation. Unless overridden by SYSLIB statements, every LNKLST set begins with:
The system automatically adds these data sets to the beginning of the LNKLST set that you define
and in the same section:
You can add a data set to any LNKLST set that you define and specify the position of the data set in the list, however an alias cannot be added for the LNKLST created at IPL. You cannot add the data set before any of the system default data sets in the concatenation; that is, you can only concatenate the data set after the CSSLIB data set in the LNKLST set.