If you have the PxPlus security system set up, then you can assign security to specific fields in the data Dictionary. When the query runs, the security setting for each field is checked and the field is displayed or not depending on that setting.
If there is no security set up, then there is really no way to change the query column settings programmatically prior to display. You could conceivably create a formula column that displays the value (or not) depending on a TBL() condition, e.g. TBL(%showcol=1,"",myfield$).
Another thought would be to set the column as hidden in the definition, which means that the initial display of the query will hide the column. The end user can then use the run-time Hide/Show/Reorder Columns feature to show the column. For those users who should not see the column, you can suppress the Hide/Show/Reorder Columns feature by adding "H" to %nomads'Query_Suppress_Popup$ on their system.